# Pasilobus Help Center: every article > Guides for the 23 Pasilobus apps on the Shopify App Store, plus Store Care and the Pasilobus account. Pasilobus builds Shopify apps and, on Store Care, looks after the stores that use them. Every article is also plain Markdown: add .md to its URL. Pasilobus apps install from the Shopify App Store and run in the Shopify admin. Store owners can also ask Shopify Sidekick about apps marked "Works with Shopify Sidekick"; it searches these guides. People answer support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support. There is no live chat. # Installation > Install the app and activate it on your theme Source: https://help.pasilobus.com/announcer/installation App: Announcer & Countdown Shopify App Store: https://apps.shopify.com/pasilobus-announcer App help: https://help.pasilobus.com/announcer Section: Getting Started Last updated: 2026-07-30 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Announcer & Countdown shows announcement bars on your storefront through a Shopify app embed. Installation takes a couple of minutes: install the app, switch the app embed on in your theme, and check that a bar appears. ## Install from Shopify App Store 1. Find [Announcer & Countdown](https://apps.shopify.com/pasilobus-announcer) on the Shopify App Store 2. Click **Add app** 3. Click **Install app** to confirm After installation, the app opens and shows a setup guide. ## Switch on the app embed The app uses a theme app embed to show announcement bars on your storefront. Without it, nothing appears. **With the setup guide:** 1. Open the **Install on your theme** step 2. In **Select Theme**, pick the theme your customers see (it's marked **(current)**) 3. Click **Activate app on theme**. The theme editor opens with the app embed switched on 4. Click **Save** in the theme editor Back in the app, the setup guide checks itself off once the embed is on. There's nothing else to confirm. **Without the setup guide** (or to switch it on in a different theme): 1. Go to **Shopify Admin > Online Store > Themes** 2. Click **Customize** on the theme you want 3. Click the **App embeds** icon in the left sidebar 4. Find **Announcements Bar** (listed under Announcer & Countdown) and toggle it **ON** 5. Click **Save** ## Verify It Works 1. Create a test announcement from the app dashboard 2. Click **Activate** to make it live 3. Visit your storefront -- you should see the announcement bar If your announcement does not appear, see [Announcements Not Showing](https://help.pasilobus.com/announcer/not-showing). --- # Plans and Pricing > What Free, Pro and Max include, prices, and what happens on a downgrade Source: https://help.pasilobus.com/announcer/plans-and-pricing App: Announcer & Countdown Shopify App Store: https://apps.shopify.com/pasilobus-announcer App help: https://help.pasilobus.com/announcer Section: Getting Started Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Announcer has three plans. Every plan includes **unlimited announcement bars** and no view limits. | | Free | Pro | Max | |---|---|---|---| | Price | $0 | $4.99 / month | $9.99 / month | | Announcement bars | Unlimited | Unlimited | Unlimited | | Countdown timers, rotating, running line and typed bars | ✓ | ✓ | ✓ | | 40+ templates | ✓ | ✓ | ✓ | | Start and end dates | ✓ | ✓ | ✓ | | Storewide bars | ✓ | ✓ | ✓ | | Customer account announcements | ✓ | ✓ | ✓ | | Analytics totals (views, clicks, click rate) | ✓ | ✓ | ✓ | | AI announcement generator | 10 per month | Unlimited | Unlimited | | **Free shipping goal bar** (progress toward free shipping, per market and currency) | | ✓ | ✓ | | Page targeting (home, product, collection, cart, specific products or collections) | | ✓ | ✓ | | Recurring weekly schedules | | ✓ | ✓ | | Per-bar analytics | | ✓ | ✓ | | A/B testing | | | ✓ | | Regional variants and translations | | | ✓ | | Priority support | | | ✓ | Prices are in USD and billed by Shopify with your Shopify invoice. ## Changing plans Open **Settings > Plans** in the app (or the plan link on any locked feature) and pick a plan. Shopify asks you to approve the charge. ## What happens when you downgrade Nothing is deleted. Bars that use a feature your new plan doesn't include (a free shipping goal, page targeting or a recurring schedule on Free; A/B tests and regional variants below Max) are **paused**: they stay in the app, marked *Paused*, and stop showing on your storefront. Upgrade again and they come back as they were. --- # Using AI to Generate Announcements > Ask Shopify Sidekick for an announcement bar in plain language Source: https://help.pasilobus.com/announcer/ai-generator App: Announcer & Countdown Shopify App Store: https://apps.shopify.com/pasilobus-announcer App help: https://help.pasilobus.com/announcer Section: Getting Started Last updated: 2026-07-28 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) You can create and manage announcement bars by asking **Sidekick**, the AI assistant built into your Shopify admin, in plain language. Sidekick opens this app's bar form already filled in -- the message, the name, the colors, the background style and the link -- so you can adjust anything you like and save when you're happy. There is nothing to switch on: the connection ships with the app. **Settings > Sidekick** in the app lists what you can ask. ## Asking Sidekick Open Sidekick from anywhere in your Shopify admin -- look for the assistant icon -- and describe what you want to announce. The more specific you are, the closer the result will be. **Examples that work well:** - "Create an announcement bar with a red background saying free shipping over $50" - "Put up a Black Friday bar, 50% off everything, animated background" - "Which of my announcement bars are running right now?" - "How did my bars perform last week?" - "Turn off the Black Friday bar" **Useful details to include:** - **What you're announcing** -- sale, free shipping, new product, event - **Key details** -- discount amount, threshold dollar value - **How it should look** -- a color, or words like animated, gradient, plain - **Where it should appear** -- top or bottom of the page, all pages or just the home page ## What Sidekick Fills In - **Message** -- what shoppers read, up to 64 characters - **Name** -- admin-only, so you can find the bar in your list later - **Bar type** -- simple, rotating, running line, typed or countdown - **Background style and colors** -- solid, gradient, radial, striped, split, animated gradient or pulse, in a color you name. Text color is picked automatically for contrast unless you ask for one - **Link** -- the call-to-action wording and where it points - **Placement** -- top or bottom, alignment, sticky on scroll, and whether shoppers can dismiss it - **Visibility** -- all pages, or just the home, product, collection, cart or blog pages Scheduling, countdown timers, translations, regional variants and A/B tests are not set this way. Add those yourself on the form, or in the bar's settings after saving. ## Reviewing and Saving Sidekick fills the form in -- it does not save anything. Nothing is on your storefront until you click **Save**, and a saved bar still needs activating before shoppers see it. Every field stays editable, so treat what Sidekick writes as a first draft. While the form is open you can keep talking to Sidekick to reword the message, and it will rewrite it in place rather than starting over. ## Managing Bars You Already Have Sidekick can also work with your existing bars: - **Find a bar** -- ask which bars exist, which one is showing right now, or search by name. Each result comes with a link straight to the bar - **Check performance** -- ask how your bars are doing and Sidekick reports views, clicks and click-through rate, over the last seven days unless you name a different period. Per-bar performance is part of Pro and Max, so on the Free plan Sidekick will tell you it is not available rather than report numbers - **Switch a bar on or off** -- "pause the Black Friday bar" takes it down without deleting it; the bar and its content are kept and you can put it back live at any time Two things it will refuse, and tell you why: activating a bar whose countdown has already run out (give it a new end date first), and activating a regional or A/B variant whose parent bar is switched off. Deleting a bar is something you do yourself in the app. ## Related - [Using Templates](https://help.pasilobus.com/announcer/templates) -- 40+ pre-designed bars if you'd rather start from a design - [Understanding Analytics](https://help.pasilobus.com/announcer/understanding-analytics) -- the views and clicks Sidekick reports --- # Using Templates > Browse 40+ pre-designed announcement templates Source: https://help.pasilobus.com/announcer/templates App: Announcer & Countdown Shopify App Store: https://apps.shopify.com/pasilobus-announcer App help: https://help.pasilobus.com/announcer Section: Getting Started Last updated: 2026-07-28 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Announcer & Countdown includes 40+ pre-designed announcement templates. Each template comes with message text, a color scheme, and styling that you can use as-is or customize to match your brand. Templates are available on all plans. ## Browse the Template Gallery From the dashboard, click **Browse 40+ Templates** (or click **Create Announcement** and select **Choose Template**). The gallery shows templates organized by category: - **Sales & Discounts** -- flash sales, percentage off, BOGO, clearance - **Shipping** -- free shipping thresholds, express shipping, delivery guarantees - **Holidays** -- Black Friday, Christmas, Valentine's Day, Mother's Day, Back to School - **New Products** -- product launches, new collections, restocks, limited editions - **Store Updates** -- store hours, policy changes, location announcements - **Urgency** -- limited time offers, low stock warnings, countdown promotions ## Pick a Template Scroll through the gallery or filter by category. Click a template to see a full preview with the colors and message text. When you find one you like, click **Use This Template**. The template loads into the announcement editor with all settings pre-filled. ## Customize It Everything in the template can be changed: - **Message text** -- replace the placeholder copy with your own - **Link text and URL** -- point to the right page on your store - **Colors** -- swap in your brand colors - **Style, position, alignment** -- adjust any design setting - **Visibility** -- choose which pages show the announcement Templates are starting points, not locked designs. ## Save and Publish 1. Give the announcement a **name** (for your own reference -- the field starts empty) 2. Click **Save** 3. Click **Activate** in the action bar at the top of the page If you find a template you want to reuse later, publish it once and then use the **Duplicate** feature to create variations quickly. --- # Announcement Styles > Choose how your announcement bar animates and displays messages Source: https://help.pasilobus.com/announcer/announcement-styles App: Announcer & Countdown Shopify App Store: https://apps.shopify.com/pasilobus-announcer App help: https://help.pasilobus.com/announcer Section: Features Last updated: 2026-02-16 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Every announcement bar has a style that controls how messages are presented and animated. When you have multiple messages in a single bar, the style determines how visitors transition between them. You can set this in the announcement editor under **Announcement Style**. ## Classic Classic is a straightforward, static display. When you have a single message, it simply shows as-is with no animation. When you have multiple messages, left and right navigation arrows appear so visitors can browse between them at their own pace. **Best for:** - Stores that prefer a clean, no-distraction look - Messages that visitors need time to read (like policy updates or detailed offers) - Bars where you want the visitor to control the pace ## Fade Fade automatically cross-fades between your messages every few seconds. One message smoothly fades out while the next fades in, using opacity transitions. Visitors don't need to click anything -- the rotation happens on its own. **Best for:** - Bars with 2-4 short messages that rotate in the background - Keeping the bar visually interesting without being distracting - Promotions where you want all messages to get equal screen time ## Running Line Running Line is a ticker or marquee-style animation. All your messages scroll continuously from right to left across the bar. When you have multiple messages, they are separated by dot characters (the centered dot, also known as the interpunct). The scrolling pauses when a visitor hovers over the bar, so they can read the current text. **Best for:** - Displaying many messages or a long list of promotions - Creating a news-ticker feel (flash sales, multiple offers) - Stores that want continuous movement to draw the eye ## Typed Typed gives your message a typewriter effect. Characters appear one at a time as if someone is typing them out in real time. Once a message finishes typing, it fades away and the next message begins typing. This creates a dynamic, attention-grabbing sequence. **Best for:** - Single, impactful messages you want to emphasize - Creating a sense of anticipation (countdown to a launch, teaser text) - Bars where you want the animation itself to draw attention ## Countdown Announcements and Style When you create a **Countdown Timer** announcement, it always uses the Classic style regardless of what you select in the style dropdown. Countdown timers need a stable, static layout to display the timer digits clearly, so the other animation styles are not applied. The Announcement Style option only controls how multi-message bars animate between messages. It does not affect other design settings like colors, background style, or positioning. ## Choosing the Right Style Consider these factors when picking a style: - **Number of messages** -- Classic works well for 1-2 messages. Fade and Typed work best with 2-5. Running Line shines when you have many messages to show at once. - **Message length** -- Short, punchy messages suit Running Line and Typed. Longer messages are easier to read in Classic or Fade. - **Store personality** -- Running Line feels energetic and urgent. Typed feels modern and engaging. Fade is smooth and subtle. Classic is reliable and universal. - **Mobile visitors** -- All styles work on mobile. Running Line pauses on hover (desktop) but scrolls continuously on touch devices. ## Quick Comparison | Style | Animation | Visitor Control | Works With Single Message | |-------|-----------|-----------------|--------------------------| | Classic | None (static) | Arrows to browse | Yes | | Fade | Auto cross-fade | No (automatic) | Yes, but no visible animation | | Running Line | Continuous scroll | Pause on hover | Yes, scrolls single message | | Typed | Typewriter effect | No (automatic) | Yes | --- # Background Styles > Customize the background appearance of your announcement bar Source: https://help.pasilobus.com/announcer/background-styles App: Announcer & Countdown Shopify App Store: https://apps.shopify.com/pasilobus-announcer App help: https://help.pasilobus.com/announcer Section: Features Last updated: 2026-07-28 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Background styles let you control the visual appearance behind your announcement text. Instead of a plain single-color background, you can add gradients, stripes, animations, and other effects to make your bar stand out and match your brand. ## Color Fields Before choosing a background style, it helps to understand the three color fields available in the editor: - **Background** -- The primary color of your bar. Used by every background style as the base or dominant color. - **Text** -- The color of your message text and any link text. Choose something with strong contrast against your background. - **Secondary** -- Used alongside the background color for styles that blend or alternate two colors (gradients, stripes, split, etc.). Not visible when using the Solid style. ## The Seven Background Styles Each background style uses these color fields differently. You can switch between styles at any time and the preview updates immediately. ## Solid A single, flat background color. The entire bar is filled with your Background Color. This is the simplest and most readable option. **When to use:** Clean, professional bars. When your message and colors speak for themselves. Works with any brand. ## Gradient A linear gradient that blends from your Background Color on the left to your Secondary Color on the right. The transition is smooth and horizontal. **When to use:** Modern, polished look. Great for sales and promotions where you want the bar to feel dynamic without animation. ## Radial A circular gradient that starts with the Secondary Color at the center and radiates outward to the Background Color at the edges. This creates a spotlight or glow effect behind your text. **When to use:** Drawing attention to the center of the bar where your message sits. Works well with bold, short messages. ## Striped Diagonal repeating stripes at a 45-degree angle, alternating between the Background Color and Secondary Color. This creates a construction-tape or caution-stripe pattern. **When to use:** Urgent messages, clearance sales, or limited-time offers. The stripes naturally convey "attention" and "action required." ## Split The bar is divided in half -- the left side uses the Background Color and the right side uses the Secondary Color. A clean, hard divide with no blending. **When to use:** Two-tone branding, contrast effects, or when you want a bold, graphic look that stands apart from typical announcement bars. ## Animated Gradient Works like the standard Gradient (left-to-right blend of Background Color and Secondary Color), but the gradient slowly shifts and animates. The background size is set to 400%, so the colors appear to move across the bar continuously. **When to use:** Catching the eye on landing pages. Effective for major sales, product launches, or any time you want the bar itself to feel alive and moving. ## Pulse Alternates between your Background Color and Secondary Color with a glowing box-shadow effect. The bar gently pulses, creating a breathing or heartbeat-like animation. **When to use:** Time-sensitive messages where urgency matters. Countdown-adjacent promotions, last-chance sales, or any announcement that benefits from a sense of urgency. ## Choosing Colors That Work Some background styles require more thought about color pairing than others: - **Solid** -- Focus on contrast between Background Color and Text Color. Secondary Color is not used. - **Gradient and Radial** -- Choose two colors that blend well together. Colors close on the color wheel (blue and purple, orange and red) create smooth transitions. Opposite colors (red and green) can feel jarring. - **Striped and Split** -- These show both colors side by side, so they should complement each other clearly. High contrast between the two colors makes the pattern more visible. - **Animated Gradient and Pulse** -- Since these animate, test them on your store to make sure the movement is pleasant and your text stays readable throughout the cycle. ## Quick Reference | Style | Colors Used | Animated | Best For | |-------|------------|----------|----------| | Solid | Background only | No | Professional, minimal bars | | Gradient | Background + Secondary | No | Modern sales and promos | | Radial | Background + Secondary | No | Centering attention on text | | Striped | Background + Secondary | No | Urgent, clearance messages | | Split | Background + Secondary | No | Bold, two-tone branding | | Animated Gradient | Background + Secondary | Yes | Major launches, eye-catching bars | | Pulse | Background + Secondary | Yes | Time-sensitive, urgency-driven | --- # Free Shipping Goal Bar > Show shoppers how much more to spend for free shipping, per market and currency Source: https://help.pasilobus.com/announcer/free-shipping-goal App: Announcer & Countdown Shopify App Store: https://apps.shopify.com/pasilobus-announcer App help: https://help.pasilobus.com/announcer Section: Features Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) A free shipping goal bar tells each shopper how much more they need to spend to get free shipping, in their own currency, and updates as they add or remove items. Once the cart reaches the goal, the bar says so. The free shipping goal bar is part of the **Pro** plan and up. On the Free plan you can set one up and save it; it stays paused on your storefront until you upgrade. ## What shoppers see - **Empty cart:** "Free shipping on orders over $50" - **Cart below the goal:** "Add $10 more to unlock free shipping", with a progress line along the bottom of the bar - **Goal reached:** "🎉 You've unlocked free shipping!" The bar updates when the cart changes, including in a cart drawer: when the shopper adds an item, changes a quantity or removes something, the amount and the progress line follow. ## Create one 1. Go to **Announcement Bars** and click **Create announcement bar**. 2. Under **Announcement type**, choose **Free shipping goal**. 3. The first message becomes the progress line. It is filled in for you: "Add {{remaining}} more to unlock free shipping". Edit the wording if you like. 4. In the **Free shipping goal** card, set: - **Free shipping:** *Over a minimum order amount*, or *On every order* if shipping is always free. - **Minimum order amount**, in your store's currency. - **Count toward the goal:** the cart total after discounts (what Shopify uses for most free shipping rates), or the item subtotal before discounts. - **Show a progress bar** on or off. 5. Adjust the other messages if you like, then click **Save** and **Activate**. ## Placeholders Use these in any of the bar's messages: | Placeholder | Becomes | |---|---| | `{{remaining}}` | The amount the shopper still needs to spend, in their currency | | `{{goal}}` | The minimum order amount, in their currency | | `{{country}}` | The shopper's country | ## Different goals per market or country If your free shipping minimum differs by region, add rows under **Goals by market or country**: - **Market handle:** the handle of a Shopify market (for example `eu` or `international`). The card lists your markets' handles. - **Country code:** a two-letter code such as `DE` or `CA`. - **Free shipping:** over a minimum, on every order, or *Not available*. - **Minimum** and, optionally, **Currency**. Leave the currency empty to enter the amount in your store's currency (it is converted for shoppers paying in another currency). Enter a currency such as `EUR` to give an exact amount in that currency: a shopper paying in euros then sees exactly "€60". A market row wins over a country row. Shoppers who match neither get the minimum from the top of the card. Announcer uses the market and country Shopify picked for the shopper (the one checkout uses), not a guess from their IP address, so the bar and checkout agree. ### Where there is no free shipping For a row set to *Not available*, the bar shows the **No free shipping message**, for example "Free shipping isn't available for {{country}} yet". Leave that message empty to hide the bar for those shoppers. ## Make sure it matches checkout The bar shows the goal you enter; it does not read your shipping rates. Set the same minimum as your free shipping rate (Settings > Shipping and delivery) or your automatic free shipping discount, and update the bar if you change them. ## Coming from Free Shipping Bar If you use Pasilobus **Free Shipping Bar** on the same store, Announcer offers to import it: on the Announcer home page, click **Import from Free Shipping Bar**. Announcer creates a draft free shipping goal bar with: - your free shipping minimum, and a country row for every country whose goal differs (taken from the shipping zones and discounts Free Shipping Bar had detected, or from your manual goals); - your bar wording; - whether the goal counts the cart total or the subtotal, and whether the bar hides where free shipping isn't available. Review the draft, then activate it. Nothing changes in Free Shipping Bar. Once the Announcer bar is live, turn off the Free Shipping Bar app embed in your theme (or uninstall Free Shipping Bar) so shoppers don't see two bars. Not imported: the bar styling from your theme editor, the product page and cart page placements, milestones and custom CSS. --- # Countdown Timers > Add urgency with countdown timers in your announcements Source: https://help.pasilobus.com/announcer/countdown-timers App: Announcer & Countdown Shopify App Store: https://apps.shopify.com/pasilobus-announcer App help: https://help.pasilobus.com/announcer Section: Features Last updated: 2026-07-28 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Countdown timers add a live, ticking clock to your announcement bar that counts down to a specific date and time. They are one of the most effective tools for creating urgency around sales, product launches, and limited-time offers. ## Creating a Countdown Announcement 1. Open the announcement editor (create new or edit existing) 2. In the **Announcement Type** dropdown, select **Countdown Timer** 3. Set your **Target Date and Time** using the date picker -- this is the moment the countdown reaches zero 4. Write your message text (e.g., "Summer Sale ends in") 5. Choose a countdown visual style 6. Configure colors, positioning, and other settings as usual 7. Save and publish The target date and time are displayed in your account's timezone, which is set in your Shopify admin under **Settings > General**. ## Countdown Visual Styles You can choose from five visual styles that control how the countdown digits are rendered: - **Flip Cards** (default) -- Each unit (days, hours, minutes, seconds) appears on a card with a flip animation as digits change. This is the most visually striking option and works well for major promotions. - **Compact** -- Simple inline text showing the countdown as `2d 5h 30m 15s`. Takes up minimal space and blends naturally with your message text. - **Boxes** -- Each time unit sits inside a bordered box. Clean and structured, good for stores that prefer a contained, organized look. - **Circles** -- Circular progress indicators surround each time unit. The circles deplete as time passes, providing a strong visual cue of urgency. - **Minimal** -- Just the numbers with no decoration, borders, or containers. The countdown integrates seamlessly into your message without drawing attention to itself as a separate element. ## Countdown Position By default, the countdown timer appears **after your message text**. You can change this: - **Before message** -- The countdown appears first, followed by your text. Example: `[02:15:30:45] Don't miss our biggest sale!` - **After message** (default) -- Your text appears first, then the countdown. Example: `Sale ends in [02:15:30:45]` ## Inline Countdown with the {countdown} Placeholder For more control over where the countdown appears within your message, use the `{countdown}` placeholder. Place it anywhere in your message text and the countdown timer will render at that exact position. **Examples:** - `Sale ends in {countdown} -- shop now!` - `Only {countdown} left to save 40%` - `{countdown} until our new collection drops` When you use the `{countdown}` placeholder, the Before/After position setting is ignored since you are manually controlling placement. ## Expired Message You can set an optional message that replaces the countdown once it reaches zero. This prevents visitors from seeing `00:00:00:00` on your bar. **How to set it:** 1. In the countdown settings, find the **Expired Message** field 2. Enter your replacement text **Examples:** - `Sale has ended! Check back soon` - `This offer has expired` - `Thanks for shopping with us!` If you leave the expired message blank, the message stops showing once the timer reaches zero -- a bar with nothing else on it disappears from your storefront, and the app marks it **Expired**. Set an expired message when you want the bar to stay up after the timer ends. ## Style and Design Notes Countdown Timer announcements always use the **Classic** announcement style. Even if you select Fade, Running Line, or Typed in the style dropdown, the bar will render as Classic. This ensures the timer digits remain stable and readable without competing animations. All other design options work normally with countdowns -- background styles, colors, positioning, sticky/inline display, dismissibility, and link settings all apply as expected. --- # Links and Call-to-Action > Add clickable links and buttons to drive traffic Source: https://help.pasilobus.com/announcer/links-and-ctas App: Announcer & Countdown Shopify App Store: https://apps.shopify.com/pasilobus-announcer App help: https://help.pasilobus.com/announcer Section: Features Last updated: 2026-02-16 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Adding a link to your announcement bar turns it from a passive message into an active driver of traffic. Whether you want visitors to shop a sale, view a new collection, or visit a specific page, links give them a clear next step. ## Three Link Styles When you add a link to an announcement, you choose one of three styles that determines how the link appears in the bar. ## Button A pill-shaped button that stands out from the message text. The colors are automatically inverted -- your Text Color becomes the button's background, and your Background Color becomes the button's text. This contrast makes the button visually distinct and easy to spot. **Setup:** - Set your **Link Text** (e.g., "Shop Now", "View Collection", "Get 20% Off") - Set your **Link URL** (e.g., `/collections/sale`) **Best for:** High-priority calls to action where you want the link to stand out. Sales, product launches, and promotions that need maximum click-through. ## Text Link A traditional underlined text link that appears in the bar's Text Color. It blends more naturally with the message and feels less aggressive than a button. **Setup:** - Set your **Link Text** (e.g., "Learn More", "See Details", "Shop Sale") - Set your **Link URL** (e.g., `/pages/sale-info`) **Best for:** Informational links, secondary calls to action, or announcements where you want the message to be the focus with a subtle link option. ## Entire Bar Clickable The whole announcement bar becomes one large clickable area. No separate button or link text is shown -- the visitor clicks anywhere on the bar to navigate to your URL. The cursor changes to a pointer on hover to signal that the bar is interactive. **Setup:** - Set your **Link URL** (e.g., `/collections/new-arrivals`) - Link Text is not needed (the bar itself is the link) **Best for:** Simple, clean bars where the message is the call to action. Works well with short, direct messages like "New arrivals are here" or "Shop our biggest sale ever." ## Positioning Links with the {link} Placeholder By default, the link or button appears after your message text. If you want to control exactly where it shows up, use the `{link}` placeholder in your message. **Examples:** - `Big sale! {link} to save 20%` -- the button or link text appears between "Big sale!" and "to save 20%" - `Free shipping on all orders. {link}` -- same as default, link at the end - `{link} -- our biggest sale starts now` -- link appears at the very beginning Without a `{link}` placeholder, the link or button is automatically appended after your message text. The `{link}` placeholder works with both Button and Text Link styles. It has no effect when using Entire Bar Clickable, since the entire bar is the link. > **Tip:** Use the **Button** style for your primary call-to-action (like "Shop Now" during a sale). Use **Text Link** for secondary or informational links where you want the message itself to be the focus. --- # Multiple Messages > Display multiple messages in a single announcement bar Source: https://help.pasilobus.com/announcer/multiple-messages App: Announcer & Countdown Shopify App Store: https://apps.shopify.com/pasilobus-announcer App help: https://help.pasilobus.com/announcer Section: Features Last updated: 2026-02-16 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Announcement bars are not limited to a single line of text. You can add several messages to one bar and let visitors see all of them without cluttering the page. This is useful when you have more than one promotion, shipping notice, or update to share at the same time. ## Adding Messages Open an announcement bar in the editor and click the **Add Message** button below the existing message fields. A new message block appears with its own body text, link settings, and countdown settings. You can add as many messages as you need. Each message is independent: it can link to a different URL, have its own countdown timer, and carry its own set of translations. ## How Messages Rotate The way visitors move between messages depends on the announcement style you have selected: - **Classic** -- Left and right navigation arrows appear on the bar. Visitors click to browse between messages at their own pace. - **Fade** -- Messages cross-fade automatically on a timer. No manual navigation is needed. - **Running Line** -- All messages scroll continuously from right to left, separated by a dot character ( · ). Every message is visible in the scrolling ticker. - **Typed** -- Messages are typed out on screen one character at a time. When one message finishes, the next one begins automatically. ## Countdown Bars Bars that use the **Countdown** style only support a single message. The Add Message button is not available for this style because the countdown timer occupies the full width of the bar. ## Removing a Message When a bar has more than one message, each message block shows a **Remove** button. Click it to delete that message. The button is hidden when only one message remains, because every bar needs at least one message. > **Tips:** > > - Keep each message concise. There is a **64-character limit** per message to make sure text displays well on all screen sizes. > - Put the most important message first. In Classic and Fade styles it is the one visitors see on load. > - Preview the bar after adding messages to make sure the rotation or scrolling feels right for your store. --- # Positioning and Display > Control where and how your announcement bar appears Source: https://help.pasilobus.com/announcer/positioning-and-display App: Announcer & Countdown Shopify App Store: https://apps.shopify.com/pasilobus-announcer App help: https://help.pasilobus.com/announcer Section: Features Last updated: 2026-02-16 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) These settings control where the announcement bar appears on the page and how it looks. All of them update the live preview in real time, so you can experiment without saving first. ## Position Choose where the bar sits relative to the rest of the page: - **Top** (default) -- The bar appears above the page content, typically above or just below the header. - **Bottom** -- The bar appears below the page content, fixed to the bottom of the viewport. Announcer keeps room for top bars while the page loads, so the page does not jump down when they appear. If a top bar wraps onto two lines on a phone, the page can still move by that extra line; one rotating bar with several messages avoids that best. Top positioning is the most common choice. Bottom positioning works well for cookie notices, consent banners, or secondary promotions that should not compete with the main header area. ## Display Controls the visual width and shape of the bar: - **Inline** -- The bar spans the full width of the page with square corners. It blends into the layout as a continuous strip. - **Floating** -- The bar is narrower than the page, centered horizontally, and has rounded corners with a small margin around it. This gives it a card-like appearance that stands out from the page. ## Sticky When **Sticky** is enabled, the bar stays visible as visitors scroll down the page. It remains pinned to its position (top or bottom) instead of scrolling away. Enable this for important messages that visitors should always see, such as a limited-time offer or a shipping deadline. Disable it for less critical announcements so the bar scrolls out of view and does not take up permanent screen space. ## Alignment Controls the horizontal alignment of text inside the bar: - **Left** -- Text is aligned to the left edge. - **Center** (default) -- Text is centered in the bar. - **Right** -- Text is aligned to the right edge. Center alignment works best for short, single-line messages. Left alignment can be more readable for longer text. Right alignment is uncommon but available if your design calls for it. ## Dismissible When **Dismissible** is enabled, a small **X** close button appears on the bar. Visitors can click it to hide the announcement for the rest of their session. This is a good choice for non-critical announcements like welcome messages or newsletter sign-up prompts. For time-sensitive promotions or important shipping notices, you may want to leave it disabled so the bar stays visible throughout the visit. ## Combining Settings These settings work together. A few common combinations: | Goal | Position | Display | Sticky | Dismissible | |---|---|---|---|---| | Standard promo banner | Top | Inline | Off | Off | | Persistent shipping notice | Top | Inline | On | Off | | Floating sale alert | Top | Floating | On | Yes | | Cookie/consent banner | Bottom | Inline | On | Yes | Try different combinations in the preview to find what fits your store. --- # Visibility and Page Targeting > Control which pages show your announcement Source: https://help.pasilobus.com/announcer/visibility App: Announcer & Countdown Shopify App Store: https://apps.shopify.com/pasilobus-announcer App help: https://help.pasilobus.com/announcer Section: Features Last updated: 2026-02-16 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) By default an announcement bar appears on every page of your store. The visibility setting lets you narrow that down so the bar only shows on the pages where it is relevant. A shipping promotion might only make sense on product pages, while a blog-specific announcement should only appear on blog posts. ## Visibility Options Open the announcement bar in the editor and look for the **Visibility** dropdown. The following options are available: ### All Pages Shows the bar on every page of your store. This is the default and is the right choice for store-wide promotions, holiday announcements, or any message that applies everywhere. ### Home Page The bar only appears on the home (index) page. Use this for welcome messages or hero-level promotions that should greet visitors when they first land on your store. ### All Product Pages The bar appears on every individual product page but not on collections, the home page, or other pages. This is useful for product-level offers like "Free engraving on all items" or "Ships within 24 hours." ### All Collection Pages The bar appears only on collection listing pages. Good for collection-wide sales such as "20% off the entire Summer collection." ### All Collection & Product Pages Combines the two options above. The bar shows on both collection pages and individual product pages. Use this when a promotion applies to browsing and buying. ### Specific Products Choose one or more individual products from a picker. The bar will only appear on those product pages. Ideal for highlighting a deal on a single bestseller or a small set of featured items. ### Specific Collections Choose one or more individual collections from a picker. The bar will only appear on those collection pages. Useful for targeted seasonal or category promotions. ### Cart Page The bar only appears on the cart page. This is a good spot for messages like "You're $15 away from free shipping" or "Orders placed before 2 PM ship today." ### Blog & Articles The bar appears on the blog index and on individual blog article pages. Use this for blog-specific calls to action such as "Subscribe to our newsletter" or "New post every Friday." ### Theme Block (Custom) This option lets you place the bar inside a specific theme section using a custom block ID. 1. Select **Theme Block (Custom)** from the visibility dropdown. 2. Save the announcement bar. 3. After saving, a **Block ID** is generated and displayed in the editor. 4. Copy the Block ID. 5. In the Shopify theme editor, add a custom block to the section where you want the bar to appear and paste the Block ID. This gives you full control over placement. You can put the bar inside a product template, a custom landing page section, or anywhere else your theme supports blocks. > **Tips:** > > - You can create multiple announcement bars with different visibility settings. For example, one bar for the home page and a separate bar for product pages, each with its own message and style. > - Preview the bar on different pages to confirm it appears where you expect. > - If the bar does not show up, double-check that the visibility setting matches the page you are viewing. --- # Customer Account Announcements > Show an announcement inside your store's customer account pages Source: https://help.pasilobus.com/announcer/customer-account-announcements App: Announcer & Countdown Shopify App Store: https://apps.shopify.com/pasilobus-announcer App help: https://help.pasilobus.com/announcer Section: Features Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) An announcement bar can appear in two places: on your storefront (the default) or inside your store's **customer account** pages -- the screens a signed-in shopper sees when they view their orders and profile. A customer-account announcement is a simple, native-looking notice for logged-in customers, and it is a good spot for order updates, loyalty perks, account-only offers, or a link to a survey. Each bar targets one place at a time. The **Where it shows** setting at the top of the editor decides which. ## Where it Shows At the top of the announcement editor, under **Status and display**, the **Where it shows** dropdown has two options: - **Storefront** (default) -- The bar appears on your online store, with all of the styling, targeting, and scheduling options. - **Customer accounts** -- The bar appears inside customer account pages instead of the storefront. Choosing **Customer accounts** simplifies the editor: the settings that only make sense on the storefront are hidden, because customer-account announcements use your store's native account styling. ## Adding the Extension Customer-account announcements render through a Shopify **customer account announcement extension**. This is an optional component that you add once to your customer accounts. When you select **Customer accounts**, the editor shows a short reminder with a **Manage extensions** link. From there you can open the Extensions page to add the customer account announcement component. Until the extension is added to your customer accounts, the bar has nowhere to display. ## What Appears in Customer Accounts Customer-account announcements are intentionally simple. A bar shows: - **The first message** and its link, on a single row. - **Your store's native customer-account styling**, so it matches the rest of the account pages automatically. - **Alignment** -- left, center, or right, set in the **Design** section. ## What Does Not Apply Because the announcement uses the native customer-account style, storefront-only options do not apply and are hidden while **Customer accounts** is selected: - Background and text colors, and background styles (gradient, striped, etc.) - Animated countdown timers. A countdown bar shows the time left as plain text (for example 2d 4h 15m) where `{countdown}` sits, worked out when the page loads, and its fallback message once the countdown ends - Animation styles (fade, running line, typed) - Sticky and dismissible behavior - Position and display mode - Page targeting (customer-account announcements are not page-specific) - Additional messages -- only the first message is shown If you need any of those, use a **Storefront** bar instead. ## Setting One Up 1. Open or create an announcement bar. 2. Under **Status and display**, set **Where it shows** to **Customer accounts**. 3. If you have not already, use the **Manage extensions** link to add the customer account announcement extension to your customer accounts. 4. Write your **message** and, optionally, add a **link** with link text. 5. In **Design**, choose an **alignment** (left, center, or right). 6. Save. The preview shows how the notice will look in the account pages. Switching **Where it shows** back to **Storefront** restores all of the storefront styling and targeting options for that bar. --- # Message Translations > Provide announcement messages in multiple languages Source: https://help.pasilobus.com/announcer/translations App: Announcer & Countdown Shopify App Store: https://apps.shopify.com/pasilobus-announcer App help: https://help.pasilobus.com/announcer Section: Features Last updated: 2026-07-28 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) If your store serves customers in more than one language, you can provide translated versions of each announcement message. When a visitor's browser language or Shopify market language matches one of your translations, the bar automatically shows the translated text instead of the default message. ## How It Works Each message in an announcement bar can carry translations for multiple languages. The translations are stored as JSON alongside the message and are preserved even when you edit other settings on the bar. When the bar loads on the storefront, it checks the visitor's language in this order: 1. The Shopify market language for the current storefront context. 2. The visitor's browser language. If a translation exists for that language, it replaces the default message text. If no translation matches, the default message text is shown as-is. ## Adding Translations Translations are generated for you. You don't enter each language by hand -- the app translates every message into the other languages your store is set up for, and you review the result. 1. Add the languages you sell in on the **Translations** settings page. If only one language is configured, there is nothing to translate into and the page tells you so. 2. Open the announcement bar from your list to reach its detail page. 3. Under **Manage this bar**, click **Translations**. 4. The page lists the languages your messages will be translated into. Translations are generated the next time you save the bar. 5. Come back to the same page to review the generated text. Each message shows its original wording with an editable field per language. 6. Adjust anything that reads awkwardly, then click **Save translations**. Translations live on their own page rather than in the bar editor, so the main editing screen stays focused on design. > Translations are available on the **Max** plan. On other > plans the page is visible but the fields are disabled, so you can see how it > works before upgrading. ## Per-Message Translations Translations are tied to individual messages, not to the bar as a whole. In a multi-message bar, each message can have its own set of translations. This means: - Message 1 could have French and Spanish translations. - Message 2 could have only a French translation. - Message 3 could have no translations at all. Each message falls back to its own default text independently. ## What Gets Translated Only the **message body text** is translated. Other parts of the bar such as the countdown timer labels, close button, and navigation arrows use their own localization and are not affected by message translations. > **Tips:** > > - Keep translated messages within the same 64-character limit as the default text. Some languages are more verbose than others, so check that translations fit well in the bar. > - Preview the bar with different languages active to confirm the translated text displays correctly. > - If you remove a language from your Shopify markets, the stored translations for that language are kept but will no longer be shown. You can remove them manually if you want to clean up. > - Translations work with all announcement styles: Classic, Fade, Running Line, and Typed. --- # Scheduling Announcements > Schedule announcements for specific dates and times Source: https://help.pasilobus.com/announcer/scheduling App: Announcer & Countdown Shopify App Store: https://apps.shopify.com/pasilobus-announcer App help: https://help.pasilobus.com/announcer Section: Advanced Features Last updated: 2026-07-30 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Scheduling lets you prepare announcement bars ahead of time and have them automatically go live and expire on specific dates. This is useful for planned promotions, holiday campaigns, or any time-sensitive message where you want hands-off control over when visitors see your bar. ## Announcement States Every announcement bar is in one of four states: - **Live** -- The bar is currently visible to visitors. The published date is in the past (or now) and it has not expired. - **Scheduled** -- The bar has a published date set in the future. It will automatically go live when that date arrives. - **Expired** -- The bar's expiry date has passed. It is no longer shown to visitors. - **Draft** -- The bar has not been published. It stays hidden until you publish it. The current state always shows in the **Status** card in the sidebar of the editor, along with the reason (for example, "Expired on Jun 9"), so you can tell at a glance whether a bar is showing. ## Publishing and Drafts When you create a bar, clicking **Save** publishes it -- it goes live right away, subject to any start or end dates you set. If you are still building it and do not want it visible yet, click **Save as draft** instead: the bar stays hidden until you are ready. **Duplicate** makes a copy as a draft, so you can edit it before it goes live. Saving an existing bar never changes whether it is live -- publishing is a deliberate action: - **Activate** (in the page header) publishes the bar. If its schedule has already ended, activating clears the old end date so the bar shows again. - **Deactivate** (in the page header) moves a live bar back to Draft. Its schedule is kept, so you can reactivate it later without re-entering the dates. - **Save** stores your changes and keeps you on the editor without touching the bar's live status. **Save as draft** stores your changes and unpublishes. ## Setting a Start Date The **Published at** field controls when a published bar goes live. Leave it blank to go live as soon as the bar is published, or pick a future date and time -- the bar stays in the **Scheduled** state until that moment, then automatically switches to Live. Pick the day in the date field and the time in the list just below it (every half hour). ## Setting an End Date The **Expires at** field controls when the bar automatically deactivates. - Set an expiry date to have the bar stop showing after a specific date and time. - Leave it blank if you want the bar to stay live indefinitely (until you manually deactivate it). - Once the expiry date passes, the bar moves to the Expired state and is no longer visible. ## Timezones All dates and times are entered and displayed in your store's timezone, the one set in your Shopify admin under **Settings > General**. That holds for everyone on your team: a colleague working from another timezone sees and saves the same store times, and saving never moves a date. ## Combining Scheduling with Countdown Timers If your announcement uses the **Countdown Timer** type, the countdown automatically uses the **Expires at** date as its target. This means: - The countdown ticks down toward the expiry date. - When the expiry date passes, the countdown reaches zero and the bar deactivates (or shows your expired message if configured). This makes it easy to run a sale with a live countdown -- set the expiry to your sale end time and both the countdown and the bar's visibility are handled automatically. ## Recurring Schedules If you need an announcement to appear on specific days or during certain hours each week, use a recurring schedule instead. See [Recurring Schedules](https://help.pasilobus.com/announcer/recurring-schedules) for details. > **Tip:** For time-sensitive promotions, combine a start/end date with a countdown timer. The countdown ticks down to your expiry date, and the bar disappears automatically when it reaches zero. --- # Recurring Schedules > Show announcements on specific days and times each week Source: https://help.pasilobus.com/announcer/recurring-schedules App: Announcer & Countdown Shopify App Store: https://apps.shopify.com/pasilobus-announcer App help: https://help.pasilobus.com/announcer Section: Advanced Features Last updated: 2026-02-16 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Recurring schedules let you show an announcement bar only on specific days of the week and optionally during certain hours. Instead of setting a single start and end date, the bar automatically turns on and off each week based on your schedule. ## When to Use Recurring Schedules Recurring schedules are useful when your announcement applies to a repeating pattern rather than a one-time event: - **Weekend sales** -- Show a bar every Friday through Sunday - **Happy hour promotions** -- Display during specific hours on weekdays - **Business hours** -- Show a "We're open" or "Live chat available" bar during store hours ## Setting Up a Recurring Schedule 1. Open the announcement editor. 2. In the **Schedule** section, select **Recurring days & times**. 3. Click the days you want the bar to appear (Sun through Sat). Selected days are highlighted. 4. Optionally set a **time window** by entering start and end times. If left blank, the bar shows all day on the selected days. 5. Save the announcement. ## How It Works - The bar checks the current day and time against your schedule using your account timezone. - On selected days (and within the time window if set), the bar is visible to visitors. - Outside the schedule, the bar is hidden automatically. - A time window can cross midnight. Monday 22:00 to 02:00 runs from Monday 22:00 until Tuesday 02:00. - The schedule repeats every week until you change or remove it. ## Combining with Start and End Dates You can use either a recurring schedule or start/end dates, but not both at the same time. If you need a recurring bar that only runs during a specific period (e.g., every weekend in December), set the recurring schedule and manually deactivate it when the period ends. > **Tip:** Recurring schedules are available on the Pro plan and above. --- # Regional Variants > Show different announcements for different markets and languages Source: https://help.pasilobus.com/announcer/regional-variants App: Announcer & Countdown Shopify App Store: https://apps.shopify.com/pasilobus-announcer App help: https://help.pasilobus.com/announcer Section: Advanced Features Last updated: 2026-07-28 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Regional variants let you create different versions of an announcement bar for different Shopify markets and languages. A visitor in Japan sees a Japanese version, a visitor in France sees a French version, and everyone else sees your original. This feature is available on the **Max** plan. ## Why Use Regional Variants A single message rarely works for every audience. Regional variants let you: - Translate announcement text into different languages. - Tailor promotions to specific markets (different sale dates, shipping terms, or product availability). - Combine both -- show market-specific content in the visitor's language. ## Variant Types There are three types of regional variants, listed from broadest to most specific: | Type | Targets | Example | |------|---------|---------| | **Market-specific** | Visitors in a particular Shopify market | "Free shipping across Europe" for the EU market | | **Language-specific** | Visitors browsing in a particular language | French translation for all French-speaking visitors | | **Market + Language** | Visitors in a specific market AND language | French content specifically for the France market | ## How Precedence Works When a visitor loads your store, Announcer picks the most specific matching variant: 1. **Market + Language** -- Checked first. If a variant matches both the visitor's market and language, it is shown. 2. **Language-only** -- Checked next. If a variant matches the visitor's language (regardless of market), it is shown. 3. **Market-only** -- Checked next. If a variant matches the visitor's market (regardless of language), it is shown. 4. **Original** -- If no variant matches, the original announcement is shown as a fallback. **Example:** You have an announcement with these variants: - Original: "Free shipping on orders over $50" - France market variant: "Livraison gratuite en France" - French language variant: "Livraison gratuite pour les commandes de plus de 50$" - France + French variant: "Livraison gratuite en France pour toute commande" A visitor in France browsing in French sees the France + French variant. A visitor in Canada browsing in French sees the French language variant. A visitor in France browsing in English sees the France market variant. Everyone else sees the original. ## Creating a Regional Variant 1. Open an existing announcement bar from your list to reach its detail page. 2. Under **Manage this bar**, click **Regional variants**. 3. Click **Add regional variant**. 4. Give the variant a name so you can recognise it later, such as "French Market". 5. Pick a **Target Market**, a **Language**, or both. Each one defaults to "All", so leaving a dropdown alone means the variant is not narrowed by that dimension -- that is how you get a market-only, language-only, or market-and-language variant. Markets that already have a variant are shown but not selectable. 6. Optionally copy messages from the original to use as a starting point. 7. Create the variant, then customize its messages, links, countdown settings, and styling. ## What Each Variant Controls Each regional variant has its own independent settings for: - Messages (text and rotating messages) - Link URL and link style - Countdown timer settings - Expired message text The variant inherits the visual style (colors, fonts, position) from the original announcement unless overridden. > **Tips:** > > - **Start with your largest audiences.** Check your Shopify analytics to see which markets and languages drive the most traffic, then create variants for those first. > - **Use the copy feature.** When creating a variant, copy from the original so you only need to translate or adjust rather than start from scratch. > - **Test your variants.** Use Shopify's market and language preview tools to verify each variant displays correctly. --- # A/B Testing > Test different announcement versions to optimize performance Source: https://help.pasilobus.com/announcer/ab-testing App: Announcer & Countdown Shopify App Store: https://apps.shopify.com/pasilobus-announcer App help: https://help.pasilobus.com/announcer Section: Advanced Features Last updated: 2026-07-28 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) A/B testing lets you compare different versions of an announcement bar to see which one performs better. Show version A to some visitors and version B to others, then use the analytics to pick the winner. This feature is available on the **Max** plan. ## Why A/B Test Small changes can have a big impact on clicks. A/B testing removes guesswork by giving you real data on what works. You might test: - Different message wording ("Free Shipping" vs. "We Ship Free") - Different call-to-action text ("Shop Now" vs. "See the Sale") - Different colors or styles - With or without a countdown timer ## How It Works When you create an A/B test, visitors are randomly split between the original announcement and the test variant based on the traffic percentage you set. Each visitor consistently sees the same version during their session so the experience is not jarring. Both versions track views and clicks independently so you can compare performance directly. ## Creating an A/B Test 1. Open an existing announcement bar from your list to reach its detail page. 2. Under **Manage this bar**, click **A/B test**. 3. Click **Create A/B test**. 4. Give the variant a name so you can tell the two versions apart in your results. 5. Set the **traffic percentage** to control how visitors are split. For example, 50 gives each version equal traffic. The maximum is whatever is left over from any variants you already created. 6. Leave **copy messages** checked to start from a copy of the current bar's messages, then edit what you want to test. Uncheck it to start from scratch. 7. Create the test, then edit the variant's messages, links, or styling. The test only starts once the announcement bar itself is active. If the bar is still a draft or scheduled for later, the A/B test page tells you when it will begin. ## Setting Traffic Percentage The traffic percentage determines how many visitors see the test variant versus the original. - **50%** -- Even split. Best for a fair comparison when you want results quickly. - **20-30%** -- Lower risk. Shows the test to a smaller group while most visitors see your proven original. - **10%** -- Conservative. Useful when you want to test something experimental without affecting most visitors. The remaining percentage automatically goes to the original. ## Reading the Results Once your A/B test has been running and collecting data, compare these metrics: | Metric | What It Tells You | |--------|-------------------| | **Views** | How many times each version was displayed | | **Clicks** | How many times visitors clicked the link on each version | | **Click Rate** | Clicks divided by views -- the key comparison metric | Look at the click rate to determine the winner. A higher click rate means that version is more effective at driving visitor action. ## Applying the Winner Once you have enough data to be confident in a winner: 1. Note the message, style, and settings of the winning variant. 2. Update the original announcement to match the winner (or keep it if the original won). 3. Remove the A/B test variant. > **Tips:** > > - **Test one thing at a time.** If you change both the message and the color, you will not know which change caused the difference. > - **Let tests run long enough.** A few hours of data is not reliable. Aim for at least several days or a meaningful number of views before drawing conclusions. > - **Start with high-impact changes.** Test message wording and CTA text before testing small style tweaks. > - **Use a 50/50 split** for the fastest, most reliable results. --- # Shopify Flow Automations > Automate your store when an announcement bar starts or stops Source: https://help.pasilobus.com/announcer/shopify-flow App: Announcer & Countdown Shopify App Store: https://apps.shopify.com/pasilobus-announcer App help: https://help.pasilobus.com/announcer Section: Advanced Features Last updated: 2026-07-28 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Shopify Flow is Shopify's own automation tool. It makes your store do something automatically when an event happens -- post to Slack, email your team, add a tag -- without any code. Flow is a free app from Shopify; if you don't have it yet, install it from the Shopify App Store. This app publishes two events to Flow, so you can build workflows around your announcement bars starting and ending. There is nothing to switch on: the connection ships with the app. You can see both events listed under **Settings > Integrations**, along with a button that opens Flow. ## The Two Triggers These are called **triggers** in Flow. You pick one as the starting point of a workflow, and they appear in Flow's trigger list under this app's name. - **Announcement bar activated** -- runs when you put a bar live. It passes the **bar name** (the name you gave it in the app), the **bar type** (simple, rotating, running line, typed or countdown) and the **bar message** (the first message on the bar, or empty if the bar has no message yet). - **Announcement bar expired** -- runs when a bar's end date passes, or when a countdown timer runs out. It passes the **bar name**, the **bar type**, and the **total views** and **total clicks** the bar collected. ## When Each Trigger Fires - **Activating a bar fires it straight away.** Publish a bar with no start date, or hit Activate on a draft, and the activated trigger runs immediately. - **Scheduled bars fire when they go live, not when you save.** Set a bar to start next Friday at 9am and the activated trigger runs on Friday at 9am. - **Reactivating fires it again.** Switch a bar off and back on, or move its start date, and the activated trigger runs again for the new run. The same applies to expiry: extend a bar's end date and the expired trigger fires at the new date instead. - **Only a schedule or a countdown expires a bar.** Switching a bar off yourself, or deleting it, does not fire the expired trigger. It reports bars that ran out on their own. - **Drafts fire nothing.** A bar that has never been published triggers neither event, and a bar created with an end date already in the past doesn't fire the expired trigger either. - **Variants never fire on their own.** Regional, language and A/B test variants follow their parent bar's lifecycle, so a bar with five variants fires once, not six times. ## Countdown Bars A countdown bar can carry both a scheduled end date and a timer, and whichever comes first is what fires the expired trigger. The exception is the fallback **expired message**. If you set one, the bar keeps showing that message after the timer runs out instead of disappearing -- so the timer is no longer the end of the bar, and only the scheduled end date fires the trigger. A countdown bar with a fallback message and no end date never fires the expired trigger, because it never stops showing. ## Views and Clicks The expired trigger reports the bar's **lifetime** totals -- every view and click it collected from the day it first went live, not the last day or the period you have selected on the Analytics page. A bar that ran three separate times reports the combined total. Per-bar totals are part of Pro and Max, the same rule as the per-announcement table on the Analytics page: on the Free plan both come through as **0**. Everything else in the trigger works normally -- only the two numbers are withheld. Upgrade to Pro or Max and they start reporting real totals. ## Setting Up a Workflow 1. Open **Shopify Flow** from your Shopify admin. **Settings > Integrations** in this app has an **Open Shopify Flow** button that takes you there. 2. Create a new workflow. 3. For the trigger, search for this app's name. The two triggers above will appear. 4. Pick one, then add whatever actions you want -- send a Slack message, send an email, add a tag, and so on. 5. Where an action takes text, insert the values the trigger passed. Flow lists them for you, so the bar's name, type and message (or its view and click totals) can go straight into a Slack message or email. 6. Turn the workflow on. That's it. There is nothing to switch on inside this app, and if you have no workflow using a trigger, the event is simply ignored -- nothing is stored and nothing is sent anywhere else. ## Things You Could Build - Post to Slack when a bar goes live, so your team knows what customers are seeing. - Email yourself the views and clicks when a sale bar ends, without opening the app. - Send yourself a reminder when your free shipping bar expires, so you remember to replace it. - Notify your marketing channel the moment a scheduled holiday bar starts. ## Related - [Scheduling Announcements](https://help.pasilobus.com/announcer/scheduling) -- the start and end dates these triggers fire on - [Countdown Timers](https://help.pasilobus.com/announcer/countdown-timers) -- timers and the fallback expired message - [Understanding Analytics](https://help.pasilobus.com/announcer/understanding-analytics) -- the views and clicks the expired trigger reports --- # Understanding Analytics > Learn how Announcer tracks views, clicks, and performance Source: https://help.pasilobus.com/announcer/understanding-analytics App: Announcer & Countdown Shopify App Store: https://apps.shopify.com/pasilobus-announcer App help: https://help.pasilobus.com/announcer Section: Analytics Last updated: 2026-07-28 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Announcer tracks how visitors interact with your announcement bars so you can measure their impact. Analytics are available on the **Dashboard** for a quick overview and on the **Analytics page** for detailed breakdowns. ## What Is Tracked - **Views** -- Each time a visitor sees an announcement bar on your storefront. - **Clicks** -- Each time a visitor clicks a link on an announcement bar. - **Click Rate** -- Clicks divided by views, shown as a percentage. ## Trend Indicators The **Views** and **Clicks** totals each carry a badge comparing them to the period immediately before the one you're looking at, of the same length. Viewing the last 7 days compares against the 7 days before that; viewing a single day compares against the day before. - **Green, with an upward arrow** -- higher than the previous period. - **Red, with a downward arrow** -- lower than the previous period. - **No badge** -- there is no earlier data to compare against yet, so any percentage would be misleading. New stores see this until a full period passes. ## Performance Badges The **Performance** column of the announcement performance table rates each bar's click rate at a glance: - **Good** (above 2%) -- Your bars are performing well. - **Average** (1% to 2%) -- There is room for improvement. - **Low** (below 1%) -- Consider revising your message, design, or call-to-action. ## Plan Differences - **Free** -- Total views, clicks and click rate, with the views and clicks charts. - **Pro and Max** -- Everything above plus the per-announcement performance table and badges. > **Tip:** If a bar has many views but few clicks, try making the call-to-action more prominent or updating the message copy. --- # Announcements Not Showing > Fix invisible announcement bars on your storefront Source: https://help.pasilobus.com/announcer/not-showing App: Announcer & Countdown Shopify App Store: https://apps.shopify.com/pasilobus-announcer App help: https://help.pasilobus.com/announcer Section: Troubleshooting Last updated: 2026-02-16 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) If your announcements are not appearing on your storefront, work through these checks in order. Most issues are resolved by step 1. ## 1. Check Theme Extension This is the most common cause. Go to **Online Store > Themes**, click **Customize** on your active theme, then click the **App embeds** icon in the left sidebar. Find **Announcements Bar** (listed under Announcer & Countdown) and make sure the toggle is **ON**. Click **Save**. If you recently switched themes, you need to enable the app embed on the new theme as well. ## 2. Check Announcement is Active Open the Announcer app and look at your announcement's status. It should say **Active**. If it says **Draft**, open the announcement, change the status to **Active**, and save. If it says **Scheduled**, the start date has not arrived yet -- change the status to **Active** and save to publish immediately. ## 3. Check Visibility Settings Open your announcement and look at the **Visibility** section. If set to **Storewide**, it will show on all pages. If set to **Page-specific**, make sure you have actually entered the pages you want. A common mistake is selecting page-specific visibility but leaving the page list empty. ## 4. Clear Browser Cache Your browser may be showing a cached version of your store. Hard refresh the page (**Cmd+Shift+R** on Mac, **Ctrl+Shift+R** on Windows) or open your store in an incognito/private window. ## 5. Check Scheduled Dates Open your announcement and check the **Published At** and **Expires At** fields. **Published At** should be in the past or blank. **Expires At** should be in the future or blank. If the announcement has already expired, remove the expiration date and re-activate it. ## 6. Theme Compatibility Announcer requires an **Online Store 2.0** theme. Older themes do not support app embeds. If your theme does not show app embeds in the theme editor, you need to upgrade to a 2.0-compatible theme. ## Still Not Working? Contact **support@pasilobus.com** and include your theme name, announcement status, and a screenshot of your storefront so we can help quickly. --- # Scheduling Not Working > Fix scheduling problems with start and end dates Source: https://help.pasilobus.com/announcer/scheduling-issues App: Announcer & Countdown Shopify App Store: https://apps.shopify.com/pasilobus-announcer App help: https://help.pasilobus.com/announcer Section: Troubleshooting Last updated: 2026-02-16 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) If your scheduled announcements are not going live at the expected time, or if they expire earlier or later than planned, the issue is almost always related to timezones or date settings. This guide covers the most common causes and fixes. ## Check Your Account Timezone Announcer uses your account timezone for all scheduling. If the timezone is wrong, bars will activate and expire at unexpected times. 1. Open the Announcer app. 2. Go to **Settings**. 3. Check the **Timezone** field. 4. Make sure it matches your local timezone (or the timezone you intend to schedule in). If you change the timezone, existing scheduled dates remain as they were entered. Only new dates you set going forward will use the updated timezone. ## Verify the Announcement Status Open the announcement and check its status: | Status | Meaning | |--------|---------| | **Live** | Currently visible on your store | | **Scheduled** | Has a future Published at date -- will go live automatically | | **Expired** | The Expires at date has passed -- no longer visible | | **Draft** | Not published -- will not go live until activated | If the status is **Draft**, the bar will never go live on its own regardless of the Published at date. You need to activate it first. ## Common Issues ### Bar Did Not Go Live on Time **Cause:** The Published at date may be set in a different timezone than you expected. **Fix:** 1. Open the announcement. 2. Check the Published at date and the timezone shown below the date field. 3. Make sure the date and time are correct for that timezone. 4. If the time has already passed, change the status to **Active** and save to publish immediately. ### Bar Expired Too Early or Too Late **Cause:** The Expires at time is interpreted in your account timezone. If your account timezone differs from your local time, the expiry will appear off. **Fix:** 1. Open the announcement. 2. Check the Expires at date and the timezone shown below the field. 3. Adjust the time if needed, accounting for the displayed timezone. ### Countdown Timer Shows Wrong Time The countdown timer counts down to the Expires at date. If the countdown looks wrong: 1. Verify the Expires at date is set correctly. 2. Check that the account timezone matches your intent. 3. The countdown is calculated client-side in the visitor's browser, so it always shows the correct remaining time regardless of timezone -- but if the target date itself is wrong, the countdown will be wrong too. ### Scheduling Works But Bar Does Not Show If the status says **Live** but the bar is not visible: - The issue is not with scheduling. See [Announcements Not Showing](https://help.pasilobus.com/announcer/not-showing) for display troubleshooting. > **Tip:** If you need a bar live immediately rather than waiting for a scheduled time, change the status to **Active** and save. --- # Installation > Install Confetti & Holiday Decor and activate it on your theme Source: https://help.pasilobus.com/confetti/installation App: Confetti & Holiday Decor Shopify App Store: https://apps.shopify.com/pasilobus-confetti App help: https://help.pasilobus.com/confetti Section: Getting Started Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Confetti & Holiday Decor adds celebratory effects to your storefront — a burst of confetti when a shopper lands on your store or adds something to their cart — and festive decorations such as snow and string lights for each season. Installation takes a couple of minutes and everything is configured from the app itself. ## Install the app - Open the Confetti & Holiday Decor listing in the Shopify App Store and click **Install** - Approve the installation in your Shopify admin ## Activate on your theme When you first open the app, a short setup guide walks you through activating Confetti & Holiday Decor on your published theme. Pick your theme, click **Activate app on theme**, and save in the theme editor when it opens. That is the only thing that ever happens in the theme editor — it just switches the app on. ## Configure in the dashboard All settings live in the app dashboard. Open the app from your Shopify admin to turn effects on or off, choose styles, and preview each one with the **Test** button. Changes apply to your storefront as soon as you save. ## Plans - **Starter ($1/month)** - Welcome and add-to-cart confetti with every style, intensity and duration, the Purchase Celebration block for the Thank You and Order Status pages, and festive decorations (snow, string lights, an edge glow, corner art and cursor trails) - **Pro ($4.99/month)** - Everything in Starter plus custom triggers on any page, button, form or scroll position, and your own decoration emoji and glow colour - **Max ($9.99/month)** - Everything in Pro plus Seasonal Autopilot and the premium-item celebration Stores that installed the app before the Starter plan existed and use the Free plan keep it: welcome and add-to-cart confetti, every style, and the Purchase Celebration block. Paid plans start with a 7-day free trial. You can change plan at any time from **Settings > Billing** in the app. --- # Confetti Effects > Turn on welcome and add-to-cart effects and pick their styles Source: https://help.pasilobus.com/confetti/confetti-effects App: Confetti & Holiday Decor Shopify App Store: https://apps.shopify.com/pasilobus-confetti App help: https://help.pasilobus.com/confetti Section: Features Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Confetti & Holiday Decor ships with two built-in celebration moments, both managed from the app dashboard. There is nothing to configure in the theme editor — save your choices in the app and your storefront updates automatically. ## Welcome confetti Fires once per browser session when a shopper lands on your home page. It does not play in the theme editor preview. - **Enable welcome confetti** - Toggle the effect on or off - **Style** - Choose from 27 styles, from Colorful Confetti, Fireworks and Gold Glitter to Hearts, Stars, Snow, Balloons, Money Rain and seasonal shapes such as pumpkins, ghosts and pine trees ## Add to cart confetti Fires when a shopper adds an item to their cart on home, collection, or product pages. - **Enable add to cart confetti** - Toggle the effect on or off - **Style** - The same 27 styles are available ## Premium item celebration (Max plan) Give pricier products their own moment: set a minimum price and a style, and any product at or above it fires that effect instead of the standard add-to-cart confetti. Works on product pages. - **Minimum price** - The threshold in your store currency - **Style** - Any of the 27 styles (Gold Fireworks by default) ## Seasonal Autopilot (Max plan) Open **Seasonal Autopilot** from the dashboard to put your effects on a yearly calendar. Add any of thirteen ready-made presets with one click — from Lunar New Year and Valentine's Day through Halloween, Black Friday & Cyber Monday, the Winter Holidays and New Year — or create your own events with any name, start and end date (pick a month and a day), and styles (an anniversary sale, a local holiday). Windows repeat every year, can wrap the year end, and your regular styles return automatically when each window closes. Every event can be edited, disabled, or deleted at any time. Lunar New Year, Easter, Mother's Day and Father's Day fall on a different date each year, so their presets follow the holiday: the page shows the dates for the coming one. If you change a preset's dates yourself, it keeps the dates you chose every year. If your store moves to a plan below Max, your events are kept but stop running; the page marks them **Not running on your plan** until you upgrade again. ## Purchase Celebration (Thank You and Order Status pages) Bring the celebration to the moment that matters most: add the **Purchase Celebration** block to your Thank You page (in the checkout editor) and Order Status page (in customer account settings). It shows an animated confetti image. There is no message or setting to fill in: place the block where you want it and save. The block is available on every plan. ## Previewing styles Every effect has a **Test** button next to its style picker. Click it to see the effect right in the dashboard before shoppers do. ## Playback - **Intensity** - How much confetti each effect uses - **Duration** - How long the continuous effects (snow, streams, fireworks) run: Short (3s), Normal (8s, the default for new stores) or Long (15s) ## Saving Changing any toggle or style shows a save bar at the top of the page. Click **Save** to apply — your storefront reflects the change within moments. ## Accessibility All effects automatically respect the visitor's "reduced motion" system preference, so shoppers who opt out of animations never see them. --- # Custom Triggers > Fire confetti on specific pages, buttons, forms, or scroll positions Source: https://help.pasilobus.com/confetti/custom-triggers App: Confetti & Holiday Decor Shopify App Store: https://apps.shopify.com/pasilobus-confetti App help: https://help.pasilobus.com/confetti Section: Features Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Custom triggers are available on the Pro plan ($4.99/month) and above. They fire confetti beyond the built-in welcome and add-to-cart moments — on any page, button, form, or scroll position. Popular uses include newsletter signups, back-in-stock alerts, and landing pages. ## Creating a trigger Open **Custom Triggers** from the app menu or the dashboard and click **Create Trigger**. Each trigger has: - **Trigger Name** - A label so you can recognize it later - **Page (optional)** - Leave blank to run on every page, or enter a path such as /pages/vip (a full page link works too; only its path is used, so the trigger fires on every domain and language of your store) - **When should confetti fire?** - The shopper action that fires the effect - **Where should it run?** - Limit the trigger to a page type: all pages, home, product pages, collection pages, cart, search, content pages, or blog articles - **CSS selector** - Which element to watch (required for clicks, submits, and scroll triggers). Use the id or class of the button, form or element in your theme, for example `#newsletter-form` or `.newsletter button` - **Confetti effect** - Any of the 27 styles ## Trigger types - **Page Visit** - Fires as soon as the page loads - **Button Click** - Fires when the shopper clicks a matching button - **Element Click** - Fires when any matching element is clicked - **Form Submit** - Fires when a matching form is submitted - **Scroll to Element** - Fires the first time a matching element scrolls into view ## Assigning effects per page type To show a different effect on different parts of your store, create one trigger per page type — for example a **Page Visit** trigger on collection pages with Gold Glitter and another on product pages with Stars Shoot. Page-type, URL, and selector targeting combine, so a trigger can be as broad or as narrow as you need. ## Managing your triggers The **Custom Triggers** page lists every trigger with its action, effect, where it runs and its status. Search by name or show only active or inactive triggers with the filters above the list. Click a trigger's name to edit it; the **⋯** button at the end of each row turns it on or off or deletes it. Only active triggers run on your storefront. If your store moves to the Free plan, your triggers are kept but stop running; the page marks them **Not running on your plan** until you upgrade again. --- # Festive Decorations > Snow, string lights, a glow and more that switch on for each season, Black Friday included Source: https://help.pasilobus.com/confetti/festive-decorations App: Confetti & Holiday Decor Shopify App Store: https://apps.shopify.com/pasilobus-confetti App help: https://help.pasilobus.com/confetti Section: Features Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Festive decorations dress your storefront for the season: snow drifting down the page, string lights along the edges, a soft glow around the screen, art in the corners and a trail behind the shopper's cursor. Each decoration is a ready-made scene that switches itself on and off on its dates, so your store can be ready for Black Friday, Christmas or Halloween without touching your theme. Decorations are included from the Starter plan. ## Adding a decoration Open **Festive decorations** from the app menu or the dashboard. The scene gallery lists every occasion, the next one first, with its dates and how many days until it starts. Click **Add** on a scene and it is scheduled for its next window: added in December, Halloween waits for next October. The **Black Friday** decoration dresses up your storefront and is included from the Starter plan. It is not the same as Seasonal Autopilot's Black Friday (Max plan), which switches your confetti effects for the same dates; the two can run together. A scene that is running today (Diwali in early November, for example) says **Running now** and is added for its current dates. Civic holidays (Fourth of July, Canada Day, Bastille Day) are suggested in their own country only. Click **Show more occasions from other countries** to see them all. ## Editing a decoration Click **Edit** on a decoration to change: - **Name and dates** - When it runs. Leave both dates empty to keep it on all year - **Falling effect** - Snow, snow that settles, leaves, hearts, gifts, sparkles, fireworks and more - **String lights** - Strands of lights down the left and right edges, clear of your logo and menu - **Edge glow** - A soft tint around the edges of the screen - **Corner art** - A small cluster in the bottom corners - **Cursor trail** - Follows the shopper's mouse; off by default - **Where it shows** - All pages, or only the page types you pick (home, product, collection, cart and more) Switch any part off with its toggle, and use **Pause** or **Resume** on the decorations page to stop or restart a whole scene. When two decorations overlap, each part is taken from one of them only, so shoppers never see two snowfalls at once. ## Previewing a decoration Click **Preview** on a decoration, or on any scene in the gallery, then **Preview** again in the note that appears. Your storefront opens with that scene on, whatever its dates. The link works for 10 minutes and only for you: every other visitor sees your store as it is. If the note says the app isn't on in your theme yet, click **Finish setup** to turn on the Confetti & Holiday Decor app embed first. ## Your own emoji and glow colour (Pro) On the Pro plan, choose **Custom emoji** as the falling effect and type up to three emoji, or **Custom colour** for the edge glow and enter a hex colour such as #7B2FF7. The emoji or colour field appears once you pick the custom option. On a lower plan these show the nearest preset instead. ## What shoppers see Decorations never cover buttons or links. A small pause button in the bottom-left corner lets any shopper switch them off, and the choice is remembered on later pages. If another app's popup covers it, move it: in your theme editor open **App embeds**, select **Confetti**, and set **Decorations pause button** to **Bottom right** or **Bottom left, raised**. The first time, a short note at the bottom of the page says seasonal decorations are showing and offers **Keep** or **Turn off**. Shoppers who ask their device for reduced motion see a still version. ## Moving from Pasilobus Seasons If you used the Pasilobus Seasons (Holiday Decorations) app, the same scenes are here, and your own scenes can come with you. Open **Festive decorations**: when your store has scenes in Pasilobus Seasons, a note offers **Import scenes**. One click copies each scene with its name, dates, parts and pages; a scene whose dates have passed is moved to the same dates next year, and a scene you already have is skipped. Then turn off the Pasilobus Seasons app embed in your theme editor (or uninstall Pasilobus Seasons), so your store doesn't show two sets of decorations. --- # Confetti not showing on my store > Checks when effects don't appear on the storefront Source: https://help.pasilobus.com/confetti/confetti-not-showing App: Confetti & Holiday Decor Shopify App Store: https://apps.shopify.com/pasilobus-confetti App help: https://help.pasilobus.com/confetti Section: Troubleshooting Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) If effects aren't appearing on your storefront, one of these checks resolves it in almost every case. ## Check the app embed is active Confetti & Holiday Decor runs through an app embed on your published theme. In your Shopify admin go to **Online Store > Themes**, click **Customize** on the published theme, open **App embeds** (the puzzle-piece icon) and check that **Confetti** is switched on, then click **Save**. The setup guide at the top of the app dashboard has an **Activate app on theme** button that opens this screen with the embed already switched on. ## Check your settings are saved Effects are controlled from the app dashboard. Make sure the effect you expect is toggled on and that you clicked **Save** after changing it. ## Check your plan Festive decorations run on the Starter plan and above; custom triggers on Pro and above; Seasonal Autopilot and the premium-item celebration on Max. On a lower plan they are kept but do not play, and their pages say **Not running on your plan**. ## Welcome confetti only fires on the home page The welcome effect plays on the home page, once per browser session: reloading the page in the same session does not play it again. Open the store in a new private window to see it again. For other pages, use a custom trigger with a **Page visit** action. ## Reduced motion Effects respect the visitor's "reduced motion" accessibility preference. If your device or browser has reduced motion enabled, confetti will not play for you, decorations show as a still version — but they still play for shoppers who haven't opted out. ## Decorations paused by the shopper Decorations show a small pause button in the bottom-left corner. Once a shopper pauses them, they stay paused in that browser until the same button is pressed again. If you paused them while testing, press it to bring them back. ## A recently changed theme If you published a new theme, the app embed needs to be activated on it. Run through the setup guide again for the new theme. --- # How customers receive what they bought > Choose one link per order, a link for each item, or a licence key Source: https://help.pasilobus.com/digital-products/delivery-methods App: Digital Products (on the Shopify App Store as "Pasilobus Digital Products") Shopify App Store: https://apps.shopify.com/pasilobus-digital-downloads App help: https://help.pasilobus.com/digital-products Section: Features Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Most digital products are delivered the same way: someone buys, and they get a link to their file. But if you sell seats, site licences or anything where buying five means five separate things to hand out, one shared link is the wrong shape. The delivery method decides which of those you get, and it is set per variant so one product can work both ways. You will find it on the product page, on each variant card. The badge on the card always shows the current method, and the button beside the files opens the setting. ## The four methods - **One link for the whole order** — the default, and right for most products. Everything on the order is delivered together. If someone buys three copies of a PDF, they get one link with three times the download allowance, because what they want is the file. - **A separate link for each item bought** — someone buying five gets five distinct links, each with its own allowance and each able to be withdrawn on its own. Use this when the buyer is going to pass one to each person. - **A separate link and key for each item** — as above, and each link also carries a licence key from that variant's stock. - **A key only, with no file** — for products that are just a key. Nothing is downloaded. ## When more than one is bought With the default method, quantity raises the allowance. Buy two, and every file on that product allows twice as many downloads. With either per-item method, quantity creates separate items instead. Your customer still gets the same delivery email they always would — it just links to a page listing everything they bought, each row with its own key, its own download link and its own remaining allowance, and a copy button for each. If they bought those items for other people, they pass one row to each. Whoever opens a row sees only that one, with its own allowance, and you can withdraw a single row without touching the rest. One thing to be aware of if you sell seats: the app emails the person who placed the order, because that is the only address Shopify gives us. If you need every seat holder emailed directly, collect their addresses yourself and forward their links. ## Changing it later Changing the method affects orders placed from that point on. Orders already delivered keep working exactly as they were. If a product has already had orders where someone bought more than one, the product page will say so and offer to switch. That prompt is based on your own order history, not a guess. --- # Selling licence keys > Import your own keys or have them generated, and never oversell Source: https://help.pasilobus.com/digital-products/license-keys App: Digital Products (on the Shopify App Store as "Pasilobus Digital Products") Shopify App Store: https://apps.shopify.com/pasilobus-digital-downloads App help: https://help.pasilobus.com/digital-products Section: Features Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) If your product needs a licence key — software, a plugin, anything the buyer activates — the app can issue one with every item sold. Keys are held per variant, so a five-seat licence and a single seat can draw on different stock. Set the variant's delivery method to **A separate link and key for each item**, or **A key only** if there is no file to download. Then load the keys. ## Importing keys you already have This is the usual case. If your own system already produces keys, paste them into the **Manage keys** screen, one per line. They are matched to buyers in the order you added them. Imported keys work with whatever already validates them — there is nothing to integrate. Duplicates are skipped, both within what you paste and against keys already loaded, and the screen tells you how many of each. ## Having the app generate keys You can also generate a batch. Generated keys use an unambiguous character set, so nothing is lost when someone reads one over the phone. Worth knowing before you choose this: a generated key only means something if your own software asks us whether it is valid. On its own it is a string in an email. If you do not have software that can check a key, import the keys your existing system produces instead. ## Running out Shopify stock for the variant follows your unclaimed keys, so the variant stops selling on its own when they run out — no overselling, and no order arriving with nothing to give it. You can hold a few back with the buffer setting, which keeps that number in reserve rather than selling down to the last key. If an order does arrive short — which can happen if stock was changed elsewhere — the buyer still gets their download links immediately, and only the key is withheld. The order is flagged in your admin and you get an email. Import more keys and those waiting items are given keys automatically, with no need to find the order yourself. ## Checking a key from your own software Your application can ask whether a key is valid, and record an activation against it. You can cap how many times a single key may be activated, so a one-seat licence cannot be installed on twenty machines. Keys are stored encrypted, and are shown to you shortened in lists so a full key is never sitting on a screen you might be sharing. --- # Installation > Install Discounts & Bundles, pick a plan and get your first offer on the storefront Source: https://help.pasilobus.com/discounts/installation App: Discounts & Bundles (on the Shopify App Store as "Pasilobus Discounts & Bundles") Shopify App Store: https://apps.shopify.com/bundles-volumes App help: https://help.pasilobus.com/discounts Section: Getting Started Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Discounts & Bundles runs automatic discount offers on your store: quantity breaks, exact-quantity packs, buy X get Y, spend thresholds, mix & match, bundles and gifts with purchase. Shopify applies them at checkout, and the app shows each offer on your product pages so shoppers see the deal before they add to cart. ## Install the app - Install Discounts & Bundles from the [Shopify App Store](https://apps.shopify.com/bundles-volumes) and approve the permissions. - Choose a plan. Free includes one active offer; paid plans start with a 14-day trial. See **Plans and limits**. - The app opens on its dashboard with a setup guide. ## Add the app to your theme The setup guide links straight into your theme editor for each piece: - **Turn on the app embed** - this loads your offers on the storefront. Without it nothing shows to shoppers. - **Add the offer block** to your product page - this is the tier picker or deal card shoppers see. In the theme editor, drag it up so it sits above the Add to cart button. - **Add the badge block** (optional) - a discount badge on the product page. - **Add the bundle block** (optional) - shows the products of a bundle and upsells. - **Add the cart estimate** (optional) - a message on the cart page about the discount shoppers have unlocked or are close to. Press **Save** in the theme editor after each one. If you are setting up on a draft theme, choose it in the guide's theme list first. In the theme editor, press **Save**, not **Publish**, which sits beside it: **Publish** makes that draft your live theme. ## Speed and your theme A slow store loses sales, so here is how Discounts & Bundles keeps its performance cost small. The discounts themselves need no script in your store: Shopify applies every offer in the cart and at checkout with Shopify Functions, which run on Shopify's own servers and work from the cart's contents alone. What loads on your storefront only shows the offers to shoppers. - **Nothing in your theme code** - everything runs from the app embed and blocks, and the files are served from Shopify's own CDN. - **Loads after the page** - the scripts are deferred: they run once the page itself is in place, so they don't hold up your products, images or Add to cart button. - **Only where needed** - the offer block's script, the largest at about 10 KB compressed, loads only on pages where you've added the offer or badge block. The bundle block's loads only on product pages with that block, and the cart estimate's only on the cart page. **Product card badges**, if you switch them on in **App embeds**, add a script under 3 KB compressed to every page. The script that puts free gifts in the cart loads only when **Add free gifts to the cart automatically** is on and a gift offer is live. - **No calls to our servers** - offer details are published to your store ahead of time and arrive with the page, so showing an offer never waits on us. ## Create your first offer - Click **Add discount** on the dashboard or the **Discount Rules** page. - Pick an offer type, fill in the name, the discount and the products, then click **Create Discount**. - Open a product the offer covers on your storefront to check the offer block, then add it to the cart to see the discount applied. --- # Plans and limits > What each plan includes and how the active-offer limit works Source: https://help.pasilobus.com/discounts/plans-and-limits App: Discounts & Bundles (on the Shopify App Store as "Pasilobus Discounts & Bundles") Shopify App Store: https://apps.shopify.com/bundles-volumes App help: https://help.pasilobus.com/discounts Section: Features Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Each plan sets how many offers can be active at once and which offer types and options you can use. Drafts never count, so you can prepare as many offers as you like and switch them on when you need them. ## Plans - **Free ($0)** - 1 active offer. Quantity breaks, exact-quantity packs, buy X get Y, mix & match and spend thresholds, with storefront translations. - **Pro ($9.99/month)** - 10 active offers. Everything in Free, plus scheduling: start and end dates, and recurring days and hours. - **Max ($24.99/month)** - 30 active offers. Everything in Pro, plus product bundles and gifts with purchase. - **Ultra ($49.99/month)** - unlimited active offers. Everything in Max, plus claim limits per offer and customer eligibility by customer tag. Paid plans start with a 14-day free trial. Discount badges, card badges, Reports, Sidekick and Shopify Flow are on every plan. ## How the limit counts - Only **active** offers count. An offer saved as a draft does not. - An offer that is active but scheduled for later, or past its end date, still counts until you switch it off. - When you reach the limit you cannot add or activate another offer. Switch an offer off, or upgrade, to make room. - If you move to a smaller plan, offers that are already active keep running. You just cannot add more until you are under the new limit. ## Locked options Offer types and options that need a higher plan are shown with the plan they need, for example **Max** next to Product Bundle, so you can see what an upgrade adds. ## Changing plan Open **Settings > Billing**, or click **Upgrade** on a plan prompt. Plans are managed by Shopify, and the change applies as soon as you approve it. --- # Quantity breaks > Buy more, save more: tiered discounts by quantity Source: https://help.pasilobus.com/discounts/quantity-breaks App: Discounts & Bundles (on the Shopify App Store as "Pasilobus Discounts & Bundles") Shopify App Store: https://apps.shopify.com/bundles-volumes App help: https://help.pasilobus.com/discounts Section: Features Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Quantity breaks give a bigger discount the more of a product the shopper buys, for example 10% off 2 or more and 20% off 5 or more. They raise order value without a code, and the offer block shows every tier on the product page. ## Create a quantity break offer - Click **Add discount** and choose **Quantity Breaks**. - Enter a **Discount name**. Shoppers see it on the discount line in the cart and at checkout. - Under **Quantity Tiers**, set the quantity each tier starts at and its discount: a percentage, a fixed amount off each item, or a fixed price. Each tier runs until the next one starts; the last can be capped with **Up to**. - Under **Applies to**, choose all products, specific products, specific variants or collections. - Click **Create Discount**. ## Quantity counting When an offer covers several products, **Quantity counting** decides whether the quantities are added together (2 shirts + 1 cap = 3) or counted per product. ## On the storefront The offer block lists the tiers with the price per item. The shopper picks a tier and adds to cart; the discount is applied in the cart and at checkout. --- # Exact quantity deals > Packs: a discount for buying an exact number of a product Source: https://help.pasilobus.com/discounts/exact-quantity-deals App: Discounts & Bundles (on the Shopify App Store as "Pasilobus Discounts & Bundles") Shopify App Store: https://apps.shopify.com/bundles-volumes App help: https://help.pasilobus.com/discounts Section: Features Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) An exact quantity deal discounts a set pack size only, for example "Buy exactly 6, get 20% off". A shopper buying 5 or 7 pays full price. Use it for multipacks and boxes. ## Create an exact quantity deal - Click **Add discount** and choose **Exact Quantity Deal**. - Under **Exact quantities**, add each pack size and its discount (for example 3 at 10% and 6 at 20%). - Choose the products or collections it applies to, then click **Create Discount**. ## Things to know - Each pack size is matched exactly. A cart with 7 items does not get the 6-pack price on six of them. - On the product page the offer block shows the packs to choose from. --- # Buy X get Y (BOGO) > Buy one, get one free or discounted Source: https://help.pasilobus.com/discounts/buy-x-get-y App: Discounts & Bundles (on the Shopify App Store as "Pasilobus Discounts & Bundles") Shopify App Store: https://apps.shopify.com/bundles-volumes App help: https://help.pasilobus.com/discounts Section: Features Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Buy X get Y rewards shoppers with free or discounted items when they buy a set quantity, for example "Buy 2, get 1 free". It is a classic way to move stock. ## Create a buy X get Y offer - Click **Add discount** and choose **BOGO**. - Under **Buy X Get Y**, set **Buy Qty** and **Get Qty**, then the **Discount Type**: **Free**, **Percentage Off** or **Fixed Amount**, with its **Discount Value**. - Under **Buy Products**, choose the products the shopper buys. Under **Get Products**, choose the products they receive at the discount. These can be the same products. - Click **Create Discount**. ## How it applies - The shopper adds the buy quantity and the get quantity to the cart, and the get items are discounted in the cart and at checkout. - The reward is not added to the cart for the shopper. The offer block tells them what to add. --- # Spend thresholds > A discount when the cart reaches a minimum amount Source: https://help.pasilobus.com/discounts/spend-thresholds App: Discounts & Bundles (on the Shopify App Store as "Pasilobus Discounts & Bundles") Shopify App Store: https://apps.shopify.com/bundles-volumes App help: https://help.pasilobus.com/discounts Section: Features Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) A spend threshold gives a discount once the cart reaches an amount, for example "Spend $100, get 15% off". It lifts order value across your whole catalogue. ## Create a spend threshold offer - Click **Add discount** and choose **Spend Threshold**. - Under **Spend Threshold**, enter **Spend at least**, then the **Discount Type** and **Discount Value**. - **Discount applies to**: **The whole order** takes the discount off the order subtotal; **The qualifying products** takes it off the products the offer covers. - For the whole order, set **Applies to** to the order. For qualifying products, choose the products or collections. - Click **Create Discount**. ## What counts toward the minimum The minimum counts the cart's full price, before any discounts, as Shopify's own minimums do. For example, with "Spend $2,700, get 10% off", three items at $1,200 come to $3,600 and clear it. - Only the products the offer covers count, unless it applies to the whole order. - A free gift from a gift with purchase offer does not count toward a gift's own minimum. ## When the cart also qualifies for another offer By default the shopper gets one offer: whichever saves them more. If the same cart also gets a buy X get Y offer, Shopify compares the two and applies the bigger saving. To let this threshold apply on top of other offers, turn on **Can combine with other offers** on both offers. See **How offers combine**. ## On the storefront Add the cart estimate block to your cart page to tell shoppers how close they are to the threshold and what they have unlocked. --- # Mix & match > Any X products from a group for a discount Source: https://help.pasilobus.com/discounts/mix-and-match App: Discounts & Bundles (on the Shopify App Store as "Pasilobus Discounts & Bundles") Shopify App Store: https://apps.shopify.com/bundles-volumes App help: https://help.pasilobus.com/discounts Section: Features Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Mix & match lets shoppers combine different products from a group to reach a quantity, for example "Buy any 3 from the summer collection, get 20% off". Shoppers choose the mix, so it suits ranges like socks, candles or snacks. ## Create a mix & match offer - Click **Add discount** and choose **Mix & Match**. - Under **Mix & Match Tiers**, set the total quantity each tier needs and its discount. - Choose the products or collections in the group. - Click **Create Discount**. ## How it applies **Quantity counting** decides how the group is counted: added together, so three different products reach a tier of 3 just like three of one product, or per product. --- # Product bundles > A discount for buying specific products together Source: https://help.pasilobus.com/discounts/product-bundles App: Discounts & Bundles (on the Shopify App Store as "Pasilobus Discounts & Bundles") Shopify App Store: https://apps.shopify.com/bundles-volumes App help: https://help.pasilobus.com/discounts Section: Features Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) A bundle discounts a set of specific products bought together, for example "Buy the shampoo and conditioner together, save 20%". Product bundles are on the Max and Ultra plans. ## Create a bundle - Click **Add discount** and choose **Product Bundle**. - Under **Bundle Products**, add at least two products (or variants) and the quantity of each. - Under **Bundle Discount**, set the **Discount Type** and **Discount Value**. - Click **Create Discount**. ## On the storefront - Add the **Bundle & Upsell** block to your product page to show the bundle's products together. - The discount applies only when every product in the bundle is in the cart in its quantity. --- # Gift with purchase > Give a free product for buying certain items or spending an amount Source: https://help.pasilobus.com/discounts/gift-with-purchase App: Discounts & Bundles (on the Shopify App Store as "Pasilobus Discounts & Bundles") Shopify App Store: https://apps.shopify.com/bundles-volumes App help: https://help.pasilobus.com/discounts Section: Features Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) A gift with purchase makes a product free when the shopper qualifies, for example "Free tote bag over $75". Gifts with purchase are on the Max and Ultra plans. ## Create a gift offer - Click **Add discount** and choose **Gift with Purchase**. - Under **Trigger**, choose **Specific products** (with a **Minimum quantity**) or **Minimum spend** (with a **Minimum spend amount**). - Under **Gift product**, click **Select gift product** and set the **Gift quantity**. - Click **Create Discount**. ## Things to know - The discount makes the gift free once it is in the cart. To add it for shoppers, open your theme editor, go to **App embeds**, open **Discounts & Bundles** and turn on **Add free gifts to the cart automatically**. It is added once when the cart qualifies, removed again if the cart stops qualifying, and not added back if the shopper removes it during that visit. - With that setting off, shoppers add the gift themselves. Tell them about it in your offer heading or on the product page. - **Minimum spend** counts the cart's full price, before any discounts, as Shopify's own minimums do. The gift itself never counts toward the amount that earns it. - If the cart also qualifies for another offer, the shopper gets whichever saves them more, unless both offers have **Can combine with other offers** turned on. See **How offers combine**. - Choose a physical product as the gift. Gift cards cannot be discounted by Shopify. --- # How offers combine > What a shopper gets when a cart qualifies for more than one offer Source: https://help.pasilobus.com/discounts/how-offers-combine App: Discounts & Bundles (on the Shopify App Store as "Pasilobus Discounts & Bundles") Shopify App Store: https://apps.shopify.com/bundles-volumes App help: https://help.pasilobus.com/discounts Section: Features Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) When a cart qualifies for more than one of your offers, the shopper gets the one that saves them more. Offers do not stack unless you allow it. ## The default: the best single offer Each offer is set up in Shopify so that it does not combine with your other offers. If a cart qualifies for, say, a buy X get Y offer and a spend threshold, Shopify works out which one saves the shopper more and applies that one. The shopper never pays more than they would with either offer alone. ## Let an offer combine - Open the offer and find **Combining with other offers**. - Turn on **Can combine with other offers**. - Click **Save**. Do the same on every offer that should stack. Two offers apply together only when both have it turned on. ## Things to know - A product gets at most one product discount, even when offers combine. If two offers discount the same product, the shopper gets the one that saves more on it. - Offers of the same kind, for example two volume discounts on different products, can both apply in the same cart. On the same product, the offer with the higher priority wins. - Spend thresholds and gifts with a minimum spend count the cart's full price, before other discounts, as Shopify's own minimums do. A shopper who also gets a buy X get Y offer still counts the free item at its full price toward the minimum. - The setting also decides whether an offer combines with your other Shopify discounts, such as discount codes. An offer with it off does not combine with other product or order discounts. Free shipping discounts always combine. --- # Scheduling, claim limits and customer eligibility > Run offers on dates or hours, cap them, and target customers Source: https://help.pasilobus.com/discounts/scheduling-and-limits App: Discounts & Bundles (on the Shopify App Store as "Pasilobus Discounts & Bundles") Shopify App Store: https://apps.shopify.com/bundles-volumes App help: https://help.pasilobus.com/discounts Section: Features Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Every offer can be switched on and left running, or scheduled, capped and targeted. Scheduling is on Pro and above; claim limits and customer eligibility are on Ultra. ## Schedule Under **Schedule** on the offer: - **Always on** - runs while the offer is active. - **Start & end dates** - starts and ends on its own. Times are in your store's time zone, shown under the dates. - **Recurring days & times** - runs on chosen days, optionally during set hours, for example weekends only or a happy hour. An active offer whose start date has not come yet shows **Scheduled**; one past its end date shows **Expired**. ## Claim limit Under **Usage limits**, **Claim limit** stops the offer after that many orders have used it, for example "first 100 orders". Leave it empty for no limit. Claims never reset, and the offer shows **Limit reached** when it is used up. A few orders placed in the moments around the last claim may still get the discount. ## Customer eligibility Under **Customer Eligibility**, limit an offer to customers with certain **Customer tags** (for example vip, wholesale). Shoppers must be logged in for their tags to count. --- # Discount badges > Show a discount badge on product pages and in product cards Source: https://help.pasilobus.com/discounts/card-badges App: Discounts & Bundles (on the Shopify App Store as "Pasilobus Discounts & Bundles") Shopify App Store: https://apps.shopify.com/bundles-volumes App help: https://help.pasilobus.com/discounts Section: Features Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) A discount badge is a small pill that tells shoppers about an offer before they read the details, for example "UP TO 20% OFF" or "BUY 2 GET 1". It comes from the offer itself, so it always matches what the checkout gives. ## Badges on product cards: the Product card badges embed To show the badge on every product card in collections, search results and the home page, use the **Product card badges** app embed. It works on any theme, and you do not place anything by hand. - In the setup guide, click the button next to the badge embed. It opens your theme editor with **Product card badges** switched on under **App embeds**. - Press **Save**. - In the embed's settings, choose the position (top left, top right or below the price), the text colour and the badge text. Each card shows the highest-priority offer for that product. Scheduled, ended and draft offers show no badge. If your theme already has its own Sale badge in that corner, the badge moves to the other corner so the two do not overlap. ## Badge on the product page: the Discount Badge block - In the setup guide, click **Add to theme** next to the badge block, or open your theme editor and add the **Discount Badge** app block. - Place it near the product title or price. - Themes whose product cards accept app blocks (such as Horizon) also let you add this block inside the card by hand. You do not need that if the embed is on. - Block settings: **Fallback colour**, **Alignment**, **Show claimed progress** (a "claimed" bar for offers with a claim limit) and **Vertical margin**. ## Choose what the badge says Open the offer and go to **Appearance**: - **Badge style** - **Discount only** (the pill), **Discount + countdown** (adds a timer to the end date) or **Hide badge**. - **Badge** - an optional phrase next to the pill, such as "Limited Time Deal", or **Custom** text. - **Badge colour** - the pill colour for this offer. The pill states the best discount the offer gives. On a tiered offer it reads "UP TO", so shoppers are not promised the top tier at the first quantity. ## Things to know - A countdown needs an end date. Set one under **Schedule**, or the countdown option is not offered. - Phrases that promise a deadline ("Ends Soon") show a warning on offers without an end date. --- # Offer not showing or not applying > Why shoppers do not see an offer, or the discount is missing at checkout Source: https://help.pasilobus.com/discounts/offer-not-showing App: Discounts & Bundles (on the Shopify App Store as "Pasilobus Discounts & Bundles") Shopify App Store: https://apps.shopify.com/bundles-volumes App help: https://help.pasilobus.com/discounts Section: Troubleshooting Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Most offers that do not show are switched off, outside their dates, or missing from the theme. Work down this list; each check takes a minute. ## Check the offer - **Status** - open the offer in **Discount Rules**. A draft never applies. Click **Activate**. - **Scheduled or Expired** - an active offer only runs between its start and end dates, and during its days and hours if it repeats. The badge on the offer tells you which. - **Limit reached** - an offer with a claim limit stops once it is used up. - **Products** - check that the product you are testing is in **Applies to**, or in the buy, bundle or gift products for those types. - **Customer tags** - an offer limited to tagged customers does not apply to guests or other customers. - **Not applied** - when collection offers together cover more than 100 collections, lower-priority ones are left out and marked **Not applied**. Use fewer collections or product lists. ## Check the theme - The **app embed** must be on: **Online Store > Themes > Customize > App embeds > Discounts & Bundles**. Without it nothing shows to shoppers. - The **offer block** must be on the product template you are testing. If it sits below Add to cart, drag it above the buy buttons in the theme editor. - Check the published theme. Adding the block to a draft theme does not change your live store. ## Check the cart - The discount appears in the cart and at checkout, not on the product price. - The cart must meet the offer: the tier quantity, the exact pack size, the spend amount, every bundle product, or the gift product added. - Another offer may be applied instead. When a cart qualifies for two offers, the shopper gets the one that saves them more, unless both have **Can combine with other offers** turned on. A discount code can also replace an offer that does not combine; try the cart without discount codes. See **How offers combine**. ## Plan limits Offers above your plan's active-offer limit cannot be activated, and bundles and gifts need Max or Ultra. See **Plans and limits**. --- # Installation > Install Free Shipping Bar, turn on the app embed in your theme, and check it on your storefront Source: https://help.pasilobus.com/free-shipping-bar/installation App: Free Shipping Bar (on the Shopify App Store as "Pasilobus Free Shipping Bar") Shopify App Store: https://apps.shopify.com/pasilobus-sales-banners App help: https://help.pasilobus.com/free-shipping-bar Section: Getting started Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Free Shipping Bar shows shoppers how much more they need to add to their cart to get free shipping, using the goal that actually applies to their country. Setup is short: install the app and turn on one app embed in your theme. That single embed gives you an announcement-style bar at the top of the page, a compact progress bar in your cart drawer and cart page, and a nudge above the buy buttons on product pages. There is nothing to type in — the app reads your free shipping goals from your Shopify shipping settings. ## Install the App Install [Free Shipping Bar](https://apps.shopify.com/pasilobus-sales-banners) from the Shopify App Store. As soon as the app opens it reads your shipping zones and automatic free-shipping discounts and works out the free shipping goal for every country you ship to. You'll land on the dashboard, where the **Shipping goals** card already lists what was found — for example "United States: over $50", "Canada: always", "Rest of world: none". If a goal looks wrong, don't worry about it yet. Finish the theme step first, then see [Shipping Goals](https://help.pasilobus.com/help) for what the app looks for and how to fix it in your shipping settings. ## Turn On the App Embed in Your Theme Everything the app shows on your storefront comes from one theme app embed. It only appears once you switch it on, and the setup guide on the dashboard takes you straight there: - **Choose your theme** — Select the theme your customers currently see. To test on an unpublished theme first, pick that one instead. - **Enable the app embed** — Click the button in the setup guide. Your theme editor opens with the **Free Shipping Bar** embed ready to activate. Turn it on and click **Save**. The app checks your theme automatically and ticks the step off. You now have, on every plan: - **The top bar** — An announcement across the top of the page (or the bottom, if you prefer) while the cart is empty. Once the cart has items it slides in for a few seconds on each page and after each cart change with the updated progress, then hides again, so it never crowds the page. You can switch it to stay on screen permanently under **Settings > Bar behaviour > Top bar**. - **The cart bar** — A compact progress bar inside your cart drawer and in the totals area of the cart page. Dawn, Horizon and the themes built on them are recognised automatically; other themes may need the **Custom CSS selector** setting described in [Top Bar, Product & Cart Bars](https://help.pasilobus.com/help). - **The product page nudge** — A line above the buy buttons telling the shopper whether adding this item unlocks free shipping. The cart and product bars can each be switched off in the embed's settings (**Show in the cart and cart drawer** and **Show on product pages** set to **Off**), so you can start with the top bar alone if you like. ## Add the Theme Blocks (Optional) The embed places the cart and product bars where most themes expect them. If you want them somewhere specific — under a particular section, in a custom cart layout, above the product description — the app also ships two theme app blocks you position yourself: - **Product page block** — Drop it into any product template section. - **Cart block** — Drop it into the cart page or an app-block-capable cart drawer. Open **Settings > Extensions** and click **Set up in Shopify** next to the block you want; the theme editor opens on the right template with the block ready to place. Position it and click **Save**. As soon as a block is on a page, the embed stops adding its own bar there, so you never see two. ## Check It on Your Storefront Open your store in a private browser window so nothing is cached: - **With an empty cart** — The top bar shows the announcement, for example "Free shipping on orders over $50". If you ship free everywhere it says "Free shipping on every order". If your theme has its own announcement bar switched on, the app's bar stays out of its way and you won't see it yet — that is the default **Skip the announcement when your theme already shows one** setting at work. - **Open a product** — Above the buy buttons you'll see "Add this item to unlock free shipping" or how far away the shopper would be. - **Add something to the cart** — The top bar slides in with "Add $X more to unlock free shipping" and hides again after a few seconds; the cart drawer shows the same progress and keeps it on screen. - **Open another page** — With items in the cart, the top bar slides in again for a few seconds on each page with the current progress, then hides. - **Pass the goal** — Every bar switches to "You've unlocked free shipping!" with a short celebration; the top bar slides in once more to say so. The goal you see is the one for the country you are browsing from. Merchants outside their main shipping zone sometimes see a different amount than they expected, or a message that free shipping is not available for their country — that is the app doing its job. See [Country Detection & Currencies](https://help.pasilobus.com/help) for how to check another country. ## If Something Is Not Showing - **Nothing at all** — Open the theme editor, click **App embeds** in the left sidebar and make sure **Free Shipping Bar** is switched on for the published theme. Then check the **Enabled** switch under **Settings > Bar behaviour** in the app. - **The top bar doesn't show while the cart is empty** — That is dynamic mode with your theme's own announcement bar visible: the empty-cart announcement is skipped so the two don't stack. Once the cart has items, the bar still appears for a few seconds on each page and after each cart change. To show the empty-cart announcement too, turn off your theme's announcement bar, untick **Skip the announcement when your theme already shows one**, or set **When the top bar shows** to **Always** under **Settings > Bar behaviour > Top bar**. - **The top bar disappears after a few seconds** — That is dynamic mode working as designed. Raise **Seconds to show on each page and after a cart change**, or choose **Always** if you want a fixed bar. - **The top bar shows but not the cart or product bar** — In the embed's settings, check **Show in the cart and cart drawer** and **Show on product pages** are set to **Automatically**. If your theme isn't one the app recognises, set the **Custom CSS selector** for the cart, or use the theme blocks instead. - **The shopper's country has no free shipping and the bar is set to hide** — Under **Settings > Bar behaviour**, **When free shipping isn't available** is set to hide the bar. Switch it to show a message if you'd rather always show something. - **A schedule is active** — On Premium, a schedule window outside today hides everything. Check **Settings > Bar behaviour > Schedule**. - **You're looking at a different theme** — In Shopify, go to **Online Store > Themes** and confirm the embed is enabled on the theme marked **Current theme**. --- # How Free Shipping Bar Works > What shoppers see, where the free shipping goal comes from, and how it changes by country Source: https://help.pasilobus.com/free-shipping-bar/how-it-works App: Free Shipping Bar (on the Shopify App Store as "Pasilobus Free Shipping Bar") Shopify App Store: https://apps.shopify.com/pasilobus-sales-banners App help: https://help.pasilobus.com/free-shipping-bar Section: Getting started Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Most free shipping bars ask you to type in a number and show it to everyone. Free Shipping Bar works the other way round: it reads the free shipping goals you already set up in Shopify and shows each shopper the one that applies to their country. A shopper in the United States sees your domestic goal, a shopper in Germany sees your EU goal, and a shopper in a country you don't ship free to is told so rather than being promised a threshold that doesn't exist. ## What Shoppers See - **Empty cart** — An announcement across the top of the page such as "Free shipping on orders over $50", so shoppers know the goal before they start. - **Below the goal** — "Add $18 more to unlock free shipping" with a progress bar that fills as items are added. The cart and product bars update the moment the cart changes, without a page reload; the top bar slides in for a few seconds with the new figure — after each cart change and on every page the shopper opens — then gets out of the way again (or stays on screen, if you prefer). - **Goal reached** — "You've unlocked free shipping!" with a short celebration. - **Free shipping on every order** — When a country has an unconditional free rate, the bar simply says so. - **No free shipping for their country** — An honest message: "Free shipping isn't available for Switzerland yet. Shipping is calculated at checkout." You can also choose to hide the bar in this case. The same state drives all three placements — the top bar, the product page bar and the cart bar — so they never disagree with each other. ## Where the Goal Comes From The app reads two things from your Shopify admin: - **Shipping zones** — In **Settings > Shipping and delivery**, any zone with a $0 rate that has a condition like "order total is $50 and up" gives that zone's countries a $50 goal. A $0 rate with no condition means free shipping on every order for those countries. - **Automatic free-shipping discounts** — An active automatic discount of the "Free shipping" type with a minimum purchase amount counts as a goal for the countries it applies to. With no minimum, it counts as free shipping on every order. When both apply to a country, the shopper gets the better deal: the lowest threshold wins, and "free on every order" beats any threshold. Countries in your Rest of world zone use that zone's goal. If your setup doesn't fit — for example you use code discounts, or you want to promote a goal that isn't a shipping rate — you can switch to manual goals or override individual countries on the Growth plan. See [Manual Goals & Country Overrides](https://help.pasilobus.com/help). ## How the Country Is Decided By default the app asks Shopify where the visitor is browsing from and uses that country. Alternatively you can tie the bar to the country the shopper selected in your store's country or market picker. Either way, the threshold is shown in the shopper's market currency, converted at your Shopify Markets rate. See [Country Detection & Currencies](https://help.pasilobus.com/help). ## Keeping Goals Up to Date - **Discounts** — Creating, editing or ending an automatic free-shipping discount reaches the bar within moments. - **Shipping zones and rates** — Shopify doesn't notify apps about shipping rate changes, so the app re-reads them every 6 hours. After editing a rate, click **Sync now** on the **Shipping goals** page to pick it up straight away. - **Currency** — If you change your store currency, goals are re-read automatically. ## What Is Not Treated as a Goal - **Code discounts** — A free shipping discount that needs a code is not a goal, because the shopper hasn't got it yet. - **Carrier-calculated rates** — Rates from a carrier are never free and are ignored. - **Product-specific shipping profiles** — Only your general (default) profile is used. Custom profiles for specific products are listed in the app as ignored. - **Weight-limited free rates** — A $0 rate that only applies below a certain weight is shown as free shipping, with a warning in the app, because the bar can't know the weight of the cart. --- # Shipping Goals > How the app detects your free shipping goals and how to read the Shipping goals page Source: https://help.pasilobus.com/free-shipping-bar/shipping-goals App: Free Shipping Bar (on the Shopify App Store as "Pasilobus Free Shipping Bar") Shopify App Store: https://apps.shopify.com/pasilobus-sales-banners App help: https://help.pasilobus.com/free-shipping-bar Section: Goals & countries Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) The **Shipping goals** page is where you see exactly what the app found in your Shopify shipping settings and what each country's shoppers will be told. Because the goals are detected rather than typed in, this page is mostly for checking — but it is also where you sync, switch to manual goals (Growth and up), and read the warnings that tell you when your setup can't be represented as a simple "over $X". ## What Counts as a Free Shipping Goal The app reads your default shipping profile in **Settings > Shipping and delivery** and looks at every zone in it: - **A $0 rate with an order-total condition** — For example a rate named "Free shipping" priced at $0 with the condition "order price is $50 and up". Every country in that zone gets a $50 goal. - **A $0 rate with no condition** — Free shipping on every order for that zone's countries. The bar shows "Free shipping on every order". - **No $0 rate** — The zone's countries have no free shipping. The bar shows the honest message or hides, depending on your [behaviour settings](https://help.pasilobus.com/help). - **Several $0 rates in one zone** — The lowest threshold wins, and an unconditional rate beats any threshold. It then reads your active **automatic discounts** of the "Free shipping" type: - **With a minimum purchase amount** — Counts as a goal for the countries the discount applies to. If that amount is lower than the zone's threshold, the discount wins, because that is the deal the shopper actually gets. - **With no minimum** — Free shipping on every order for those countries. - **Scheduled discounts** — Listed on the page with their start date, but not used until they become active. A discount can only ever lower a country's goal; it never removes free shipping from a country that already has it through a zone. ## The Rest of World Fallback If you have a **Rest of world** zone, its goal is used for every country not covered by another zone or discount. If you don't, countries you haven't set up have no free shipping and shoppers there see the "not available" message. ## Reading the Page - **Goals by zone** — One row per zone: the zone name, its countries, and the goal ("Over $50", "Always", "None"). A badge shows whether the goal comes from a **zone** or a **discount**, or is **manual**. - **Detected discounts** — Your automatic free-shipping discounts with their status, minimum, and the countries they apply to. - **Last synced** — When the shipping settings were last read. ## Sync Now Shopify tells the app immediately when a discount changes, but not when a shipping rate changes. Rates are re-read every 6 hours automatically. After editing a shipping rate or zone, click **Sync now** to update the goals straight away, then reload the page to confirm. ## Warnings - **A free rate depends on weight** — A $0 rate that has a weight condition (for example "free under 5 kg") is shown to shoppers as free shipping, because the bar can't know how much a cart weighs. If heavy orders would not actually ship free, consider wording in [Translations](https://help.pasilobus.com/help) that mentions the limit, or a manual goal (Growth and up). - **Product-specific shipping profiles are ignored** — Only the default profile is used. Custom profiles (for example one for oversized items) are listed as "product-specific, ignored". Shoppers with those products in their cart see the general goal. - **No free shipping anywhere** — None of your zones or discounts offers free shipping. The bar will show the "not available" message everywhere, or hide. Check that the free rate is in your default shipping profile and priced at exactly $0, then click **Sync now**. If the offer genuinely lives outside your shipping rates, [manual goals](https://help.pasilobus.com/help) (Growth and up) let you state it. ## What Is Never Detected - **Code discounts** — A free shipping discount that requires a code isn't a goal. - **Carrier-calculated rates** — Rates quoted by a carrier are never free. - **Rates in product-specific profiles** — See the warning above. - **Draft order or checkout-only offers** — Anything that isn't a shipping rate or an automatic discount. Where possible, express the offer as a $0 shipping rate or an automatic free-shipping discount so the app can read it. Otherwise, [manual goals and country overrides](https://help.pasilobus.com/help) (Growth and up) let you tell the app the goal yourself. --- # Manual Goals & Country Overrides > Set your own goal instead of the detected one, for every country or for specific ones Source: https://help.pasilobus.com/free-shipping-bar/manual-goals-and-overrides App: Free Shipping Bar (on the Shopify App Store as "Pasilobus Free Shipping Bar") Shopify App Store: https://apps.shopify.com/pasilobus-sales-banners App help: https://help.pasilobus.com/free-shipping-bar Section: Goals & countries Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Detected goals fit most stores, but not every free shipping offer lives in a shipping rate. You might advertise "free shipping over $75" but implement it at checkout another way, run a promotion the app can't see, or want one country to show a different amount from what Shopify would suggest. Manual goals and country overrides cover these cases. Both are Growth plan features and both are managed on the **Shipping goals** page. On the Free plan the bar always shows what your Shopify shipping settings say, so a wrong goal is fixed by correcting the rate in **Settings > Shipping and delivery** and clicking **Sync now**. ## Manual Mode Manual mode replaces the detected goals with one goal of your own for every country. - Open **Shipping goals** and switch **Goal source** from **Automatic** to **Manual**. - Choose the default goal: - **Threshold** — Free shipping over an amount you enter, in your store currency. Shoppers in other markets see it converted to their currency. - **Always** — Free shipping on every order. - **None** — No free shipping. The bar shows the "not available" message or hides. - Click **Save**. The detected zones and discounts stay listed on the page for reference, so you can compare what you set against what Shopify would have shown. Switching back to **Automatic** restores the detected goals immediately. > Manual goals are not connected to your checkout. If you tell shoppers "free shipping over $50" but your shipping rates charge for a $60 order, they will find out at checkout. Keep manual goals in step with what you actually charge. ## Country Overrides An override sets the goal for one country. It wins over everything else — the detected goal in automatic mode and the default goal in manual mode — so it is the right tool when one country is the exception. - On **Shipping goals**, find **Country overrides** and click **Add override**. - Pick the country and its goal: threshold (in store currency), always, or none. - Click **Save**. The country now shows this goal regardless of what your zones or discounts say. - To go back to detection for that country, remove the override. Like manual mode, country overrides are available on the Growth plan and up. On the Free plan the controls are shown but can't be edited. ## Typical Uses - **A promotional goal** — You want to show "free shipping over $40" during a sale while your permanent rate stays at $50. Set a manual default or an override for the countries in the sale, and remember to remove it afterwards. On Premium, [scheduling](https://help.pasilobus.com/help) can turn the whole bar on and off around the sale for you. - **A country with a special deal** — Your EU zone is free over €80 but you ship free to Ireland on every order through a checkout rule the app can't see. Add an Ireland override set to **Always**. - **Hiding a country's goal** — A country is in your Rest of world zone, but you'd rather not promote free shipping there. Add an override set to **None**. - **A free rate that depends on weight** — The app shows it as free shipping with a warning. If heavy orders don't ship free, set an override with the wording that fits, or use manual mode. ## Which Goal Wins When several settings could apply to a country, the order is: 1. A **country override** for that country. 2. In manual mode, the **manual default** goal. 3. In automatic mode, the **detected** goal from zones and discounts (lowest threshold wins, "always" beats any threshold). 4. The **Rest of world** zone's goal, if there is one; otherwise no free shipping. --- # Country Detection & Currencies > How the app decides which country a shopper is in and which currency to show Source: https://help.pasilobus.com/free-shipping-bar/country-detection-and-currencies App: Free Shipping Bar (on the Shopify App Store as "Pasilobus Free Shipping Bar") Shopify App Store: https://apps.shopify.com/pasilobus-sales-banners App help: https://help.pasilobus.com/free-shipping-bar Section: Goals & countries Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) The bar can only show the right goal if it knows which country the shopper is in. Free Shipping Bar offers two ways to decide that, converts the goal into the currency the shopper is browsing in, and lets you choose what happens when a country has no free shipping at all. All three settings live under **Settings > Bar behaviour**. ## Choosing the Country Source - **Visitor location (default)** — The app asks Shopify where the visitor appears to be browsing from and uses that country. It works before the shopper has touched anything, so the very first page they see already shows the right goal. If the location can't be determined, the bar falls back to the store's selected country. - **Selected market** — The bar uses the country the shopper has chosen in your store's country or market selector (or your store's default country when they haven't chosen). Pick this if you use Shopify Markets with a country selector and want the bar to always match what the shopper picked, or if many of your customers browse through VPNs or from abroad and you'd rather they set the country themselves. If the two would disagree — a visitor in France who has switched your store to the United States market — **Visitor location** shows the French goal and **Selected market** shows the US goal. Choose whichever matches how your checkout will actually behave. ## Currency Conversion Goals are stored in your store currency. When a shopper browses in another currency through Shopify Markets, the bar converts the goal using your store's current Markets rate and formats it in that currency, so a $50 goal appears as roughly €46 to a shopper paying in euros. - **Converted amounts can look uneven** — $50 might show as €46.13. If you'd rather show a round number for a market, add a [country override](https://help.pasilobus.com/help) (Growth and up) for that country with the exact amount you want (entered in your store currency, so pick a value that converts cleanly, or accept the small difference). - **Rounding at checkout** — If your Markets settings round converted prices, the bar's amount may differ from the checkout's by a few cents. Shoppers still unlock free shipping at the same point, because the comparison is done on the real cart total. ## When a Country Has No Free Shipping Under **Settings > Bar behaviour**, **When free shipping isn't available** controls what shoppers in a country with no free shipping see: - **Show a message** (default) — "Free shipping isn't available for Switzerland yet. Shipping is calculated at checkout." Honest, and it saves the shopper a surprise at checkout. The wording is editable under [Translations](https://help.pasilobus.com/help). - **Hide the bar** — Nothing is shown. Choose this if you'd rather not draw attention to countries you don't ship free to. ## Testing Another Country - **Selected market** — Use your store's country selector to switch, and the bar updates. - **Visitor location** — Shopify decides the location, so you can't switch it from the page. Use a VPN set to the country you want to check, or temporarily switch the country source to **Selected market**, test with the selector, and switch back. - **In the theme editor** — The editor shows the bar for your store's default country. The detected country is remembered for the browsing session, so after changing settings open a new private window to see the result from scratch. --- # Top Bar, Product & Cart Bars > The three placements the app embed gives you, the optional theme blocks, and the design settings in the theme editor Source: https://help.pasilobus.com/free-shipping-bar/top-bar-and-blocks App: Free Shipping Bar (on the Shopify App Store as "Pasilobus Free Shipping Bar") Shopify App Store: https://apps.shopify.com/pasilobus-sales-banners App help: https://help.pasilobus.com/free-shipping-bar Section: Placements, design & plans Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Free Shipping Bar appears in three places on your storefront: an announcement-style bar across the top (or bottom) of the page, a compact progress bar in the cart drawer and on the cart page, and a nudge above the buy buttons on product pages. All three come from the single app embed you enabled during [installation](https://help.pasilobus.com/help), and all three share one cart state, so a shopper who adds an item sees every bar update at the same moment. How they look is set in the theme editor; how they behave is set in the app under [Bar Behaviour](https://help.pasilobus.com/help). Every placement is included on every plan. ## What the Embed Shows Open **Online Store > Themes > Customize**, click **App embeds** in the left sidebar, and click **Free Shipping Bar** to see its settings. - **Top bar** — On while the embed is enabled. By default it behaves like an announcement: it shows the goal while the cart is empty, then, once the cart has items, slides in for a few seconds on each page and after each cart change with the progress or the unlocked message, and hides again. Under **Settings > Bar behaviour > Top bar** you can keep it on screen permanently instead, set how many seconds it stays each time it appears, and choose whether to skip the empty-cart announcement when your theme already shows one. See [Bar Behaviour](https://help.pasilobus.com/help). - **Show in the cart and cart drawer** (Automatically / Off) — On **Automatically**, the app looks for your theme's cart drawer and the totals area of the cart page and places a compact progress bar there. Dawn, Horizon and the many themes built on them are recognised out of the box. It refreshes every time the drawer opens or the cart changes. - **Show on product pages** (Automatically / Off) — On **Automatically**, a one-line nudge appears above the buy buttons: "Add this item to unlock free shipping", or "$18 away from free shipping" counting the item on screen. It watches the variant selector, so the hint changes when the shopper picks a different size or colour. - **Custom CSS selector (optional)** — If your theme isn't recognised and the cart bar doesn't appear, paste the CSS selector of the element inside your cart or cart drawer that the bar should be inserted into (it becomes the first thing in that element; your theme developer or the theme's support can tell you this, for example `.cart__footer` or `#CartDrawer .drawer__footer`). The product page has its own selector: the product form, or the element the bar should sit before. Leave both blank for recognised themes. ## Design Settings The embed has two colour groups so the big top bar and the small inline bars can be styled separately: - **Top bar** — Position (**Top** overlays the top of the page, **Bottom** sits at the bottom, **Inline top** pushes the page content down so the bar never covers your header), sticky, background, text, progress track and fill colours, font size and height. **Show progress bar** is off by default for the top bar: an announcement reads better as one line, and the cart and product bars carry the visual progress. Turn it on if you keep the top bar set to **Always**. - **Inline bars** — Background, text, track and fill colours for the cart and product page bars, plus their size. **Show progress bar** is on by default here. - **Progress style** — A full **bar** or a **slim** line, for whichever bars have the progress bar turned on. - **Icon** — Shows a small shipping icon before the message. - **Animation** — Whether the bars and their messages transition smoothly or change instantly. Click **Save** in the theme editor. Changes are live immediately. ## The Theme Blocks (Optional) Auto placement suits most themes. When you want a bar in an exact spot, the app also ships two theme app blocks that you position like any other block: - **Product page block** — Place it anywhere in a product template: above the description, under the price, in a sidebar. - **Cart block** — Place it in the cart page, or in a cart drawer that accepts app blocks. Add them from **Settings > Extensions** in the app (**Set up in Shopify** opens the theme editor on the right template with the block ready to drop in), or in the theme editor by clicking **Add block** in a section and picking **Free Shipping Bar** under **Apps**. Each block has its own colours, size and progress style, independent of the embed. Once a block is on a page, the embed stops placing its own bar on that page. You don't need to set **Show in the cart and cart drawer** or **Show on product pages** to **Off** — the block takes over automatically, and removing it hands the page back to auto placement. ## Turning Placements Off - **Only the top bar** — Set **Show in the cart and cart drawer** and **Show on product pages** to **Off** in the embed. Consider **Always** under **Settings > Bar behaviour > Top bar** so the progress stays visible. - **Only the cart and product bars** — Keep the embed on and use **Pages** under **Settings > Bar behaviour** (Growth and up) to limit the top bar to the pages you choose, or its **Devices** setting to hide it on mobile where the inline bars carry the message. - **Nothing** — Switch off **Enabled** under **Settings > Bar behaviour**, or disable the embed in the theme editor. ## Which Placements to Use - **All three, as installed** — Right for most stores. The product nudge catches shoppers before they add, the cart bar catches them while they review, and the top bar announces the goal to new visitors and pops in with progress after each change. - **Top bar and cart only** — For stores whose product pages are already busy, or where a single item rarely crosses the goal. - **Blocks instead of auto placement** — For heavily customised themes, or when the auto-placed bar lands somewhere you don't like. --- # Bar Behaviour > Settings that control when the bar shows and how it reacts, under Settings > Bar behaviour Source: https://help.pasilobus.com/free-shipping-bar/bar-behaviour App: Free Shipping Bar (on the Shopify App Store as "Pasilobus Free Shipping Bar") Shopify App Store: https://apps.shopify.com/pasilobus-sales-banners App help: https://help.pasilobus.com/free-shipping-bar Section: Placements, design & plans Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Two places control the bar. The theme editor decides how it looks — position, colours, size, progress style. The app decides how it behaves — when the top bar appears and for how long, which cart total it compares, whether shoppers can close it, and what happens when the goal is reached. Behaviour settings are under **Settings > Bar behaviour** and apply to every placement at once. ## Showing the Bar - **Enabled** — The master switch. Turn it off to hide every placement without touching your theme. Useful while you set things up or if you pause free shipping. - **Show on empty cart** — With nothing in the cart, show the teaser ("Free shipping on orders over $50"). Turn it off to show the bars only once the shopper has started a cart; in dynamic mode that means the top bar first appears after the first item is added. - **Pages** (Growth and up) — Show the top bar on all pages, or only on the ones you tick: home, product, collection, cart, search, blog and page. The cart and product page bars belong to their own pages and aren't affected. - **Devices** (Growth and up) — All devices, desktop only, or mobile only. Mobile screens are small, and some stores prefer to keep the bar off them and rely on the cart and product page bars instead. ## Top Bar The top bar behaves like an announcement rather than a fixture. By default it is on screen while the cart is empty, so the goal is the first thing a visitor learns, and then gets out of the way: once the cart has items it slides in for a few seconds on each page the shopper opens and after each cart change, with the updated progress, and hides again. Three settings under **Settings > Bar behaviour > Top bar** control this: - **When the top bar shows** — **Dynamically (default) — for a few seconds on each page and after each cart change, and as an announcement while the cart is empty** keeps the bar out of the way once shopping starts while still reminding shoppers of their progress as they browse. **Always** keeps it on screen on every page like a fixed announcement bar, updating in place as the cart changes. - **Seconds to show on each page and after a cart change** — Dynamic mode only. How long the bar stays in view each time it slides in (on page load with items in the cart, and after a cart change), from 2 to 30 seconds (default 6). Give shoppers long enough to read the remaining amount; on a busy page 6 seconds is plenty. - **Skip the announcement when your theme already shows one** — Dynamic mode only, on by default. If your theme's own announcement bar is visible, the empty-cart announcement is not shown, so two bars never stack at the top of the page. Once the cart has items, the bar still slides in on each page and after cart changes. Turn it off if you want the free shipping goal shown alongside your theme's announcement. The cart and product page bars are unaffected: they stay in place on their pages and update live. ## Comparing the Cart - **Cart total to compare** — **Total after discounts** (default) uses the amount the shopper will actually pay for the items, after automatic and code discounts. **Item subtotal** uses the amount before discounts. Match this to how your free shipping rate is evaluated: Shopify shipping rate conditions look at the cart total after discounts, so the default is right for detected goals. Pick **Item subtotal** if you use manual goals that you describe in terms of "spend $50 on products". ## Country and Availability - **Country source** — Visitor location or selected market. See [Country Detection & Currencies](https://help.pasilobus.com/help). - **When free shipping isn't available** — Show an honest message, or hide the bar. Also covered in that article. ## Reactions - **Unlock celebration** — A brief pulse and highlight when the shopper crosses the goal. On by default. Turn it off for a quieter storefront. - **Dismissible** (Growth and up) — Adds a close button to the top bar. A shopper who closes it doesn't see it again for the rest of their browsing session — including the slide-ins on each page and after cart changes — and it returns on their next visit. Most useful with **Always**; in dynamic mode the bar already hides itself. The cart and product page bars can't be dismissed. ## Custom CSS (Growth and Up) A box for CSS that is added once to every page with the bar. Use it for anything the theme editor settings don't cover — a different font, a border, spacing tweaks, or hiding the icon on mobile. Target the bar's own classes so your rules don't affect the rest of the theme. The box holds up to 5,000 characters. > After changing custom CSS, check the bar on a phone as well as on desktop. A rule that fits a wide bar can wrap or overflow on a narrow one. ## Premium Settings on This Page - **Milestones** — Goals after free shipping, such as a free gift at $100. See [Plans & Premium Features](https://help.pasilobus.com/help). - **Schedule** — Start and end dates outside which the bar doesn't show at all. Also in that article. ## Locked Settings Settings your plan doesn't include are shown greyed out with a "Growth plan and up" or "Premium plan" note rather than hidden, so you can see what upgrading would give you. If you downgrade, those settings return to their defaults on the storefront but your stored values are kept, so upgrading again restores them. --- # Translations > Edit the wording shoppers see in any of your store's languages Source: https://help.pasilobus.com/free-shipping-bar/translations App: Free Shipping Bar (on the Shopify App Store as "Pasilobus Free Shipping Bar") Shopify App Store: https://apps.shopify.com/pasilobus-sales-banners App help: https://help.pasilobus.com/free-shipping-bar Section: Placements, design & plans Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Every message the bar shows is editable, and each of your store's languages has its own set. The defaults are neutral English; you can make them match your brand's voice, mention a delivery promise, or translate them for shoppers who browse in another language. Wording is managed in the app under **Settings > Translations** and applies to every placement. ## The Messages - **Empty cart** — "Free shipping on orders over {{goal}}". Shown by the top bar when the cart is empty and the empty-cart teaser is on. - **Progress** — "Add {{remaining}} more to unlock free shipping". The top bar while the cart is below the goal. - **Unlocked** — "You've unlocked free shipping!". Any placement once the goal is reached. - **Always free** — "Free shipping on every order". Countries with an unconditional free rate. - **Not available** — "Free shipping isn't available for {{country}} yet. Shipping is calculated at checkout." Countries with no free shipping, when the bar is set to show a message. - **Product page — would unlock** — "Add this item to unlock free shipping". - **Product page — progress** — "{{remaining}} away from free shipping". - **Cart — progress** — "You're {{remaining}} away from free shipping". - **Cart — unlocked** — "🎉 You're getting free shipping!". - **Milestone — progress** — "Add {{remaining}} more to get {{reward}}" (Premium). - **Milestone — unlocked** — "You've unlocked {{reward}}!" (Premium). - **Close** — The label of the close button on a dismissible bar, read by screen readers. ## Placeholders The parts in double curly braces are filled in for each shopper. Keep them in your wording wherever you want the value to appear; you can move them or leave one out. - **{{goal}}** — The free shipping threshold, formatted in the shopper's currency. - **{{remaining}}** — How much more the shopper needs to add. - **{{total}}** — The current cart total being compared. - **{{country}}** — The name of the shopper's country. - **{{reward}}** — The milestone reward you entered, for milestone messages. ## Editing Wording Open **Settings > Translations**. Each language is listed with its messages; click a message to edit it and save. Changes reach your storefront within moments. You don't need more than one language to use this page. Many stores keep only English and simply reword the defaults — "Spend {{remaining}} more and shipping's on us" reads very differently from the default. ## Adding a Language Click **Add language** and choose from the list. The new language starts with a ready-made translation of every message, which you can adjust. The storefront picks the set that matches the language the shopper is browsing your store in, and falls back to your default language when there is no match. Translations are available on every plan, in 21 languages. ## Tips - **Keep it short** — The top bar is one line. Long messages wrap on mobile and push the progress bar down. - **Say what happens next** — Wording like "Add {{remaining}} more for free shipping — applied at checkout" answers the question shoppers actually have. - **Be honest in the unavailable message** — It's the one message shoppers in a country without free shipping will see. "We're working on free shipping to {{country}}" is better than silence, and better than a goal they can't reach. --- # Plans & Premium Features > What Free, Growth and Premium include, plus milestones, analytics and scheduling Source: https://help.pasilobus.com/free-shipping-bar/plans-and-premium-features App: Free Shipping Bar (on the Shopify App Store as "Pasilobus Free Shipping Bar") Shopify App Store: https://apps.shopify.com/pasilobus-sales-banners App help: https://help.pasilobus.com/free-shipping-bar Section: Placements, design & plans Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Free Shipping Bar has three plans. Everything shoppers see is on the Free plan — all three placements, the detected goals, country detection, currencies, the honest "not available" message and the languages — with no view limit. The paid plans are about control and measurement: Growth lets you decide the goals and where the bar shows, Premium lets you measure it, add goals beyond free shipping, and schedule it. You can change plan at any time from **Settings > Billing**; both paid plans start with a 7-day free trial. ## What Each Plan Includes - **Free — $0** — The top bar, the cart bar (drawer and cart page) and the product page bar; goals detected from your shipping zones and automatic free-shipping discounts; the right goal for each shopper's country, in their market currency; the honest "no free shipping to your country" message; the progress bar and the unlock celebration; 21 storefront languages; unlimited views. - **Growth — $4.99/month, 7-day trial** — Everything in Free, plus manual goals and per-country overrides, page and device targeting, a dismissible bar, and custom CSS. - **Premium — $9.99/month, 7-day trial** — Everything in Growth, plus milestone goals after free shipping, analytics, scheduling, and priority support. Locked settings are always visible in the app, greyed out with a note saying which plan includes them, so you can see what you'd get before upgrading. ## Why Manual Goals Are a Growth Feature On the Free plan the bar shows exactly what your Shopify shipping settings say. If a goal is wrong, the fix is in **Settings > Shipping and delivery** in Shopify — correct the rate, click **Sync now** on **Shipping goals**, and the bar follows. That keeps the bar and your checkout in agreement by construction. Growth is for stores that need the bar to say something the shipping settings can't express: a promotional goal, a country exception handled outside shipping rates, or a weight-limited rate that needs different wording. See [Manual Goals & Country Overrides](https://help.pasilobus.com/help). ## Milestones (Premium) A milestone is a second goal shown once free shipping is unlocked: "Add $32 more to get a free tote bag", then "You've unlocked a free tote bag!". Use it to keep the bar useful after the first goal is met and lift the average order a step further. - Open **Settings > Bar behaviour > Milestones** and click **Add milestone**. - Enter the **threshold** in your store currency and the **reward** in words, exactly as it should appear in the message, for example "a free tote bag" or "10% off". - Add up to three milestones. They are shown in ascending order, one at a time, after free shipping. - Click **Save**. The app shows the milestone; it doesn't create the reward. Set up the free gift, discount or whatever you promised as an automatic discount in Shopify so shoppers actually receive it at checkout. Thresholds convert to the shopper's market currency the same way free shipping goals do. Milestone wording is editable under [Translations](https://help.pasilobus.com/help). ## Analytics (Premium) The dashboard's metrics card and the analytics section show how the bar is doing for the current billing cycle: - **Impressions** — How many times a placement was shown. - **Unlocks** — How many times a shopper crossed the free shipping goal while a bar was visible. - **Unlock rate** — Unlocks as a share of impressions. - **Top countries** — Where your impressions and unlocks come from, which is a quick way to spot a country whose goal is set too high to be reached. Figures are counted per day and per placement, so you can compare the top bar against the cart bar. Counting starts when you move to Premium; earlier activity isn't back-filled. ## Scheduling (Premium) A schedule shows the bar only between a start and an end date. Outside the window nothing renders — no top bar, no cart or product bars — so you don't need to switch the embed off and on around a campaign. - Open **Settings > Bar behaviour > Schedule**. - Set a **start** date and time and, optionally, an **end**. Leave either blank for open-ended. - Click **Save**. Schedules work well with a temporary [manual goal or override](https://help.pasilobus.com/help) for a sale: set the promotional goal, schedule the bar for the sale dates, and switch the goal back afterwards. ## Changing Plan Open **Settings > Billing** and pick a plan. Shopify handles the charge on your regular Shopify bill, the trial starts straight away, and the new plan's features switch on immediately. If you move to a lower plan, the storefront keeps working — every placement stays — but settings that belong to a higher plan stop applying: goals go back to the detected ones, overrides and targeting fall back to defaults, the close button disappears, custom CSS is no longer added, and milestones, analytics and schedules pause. Your values are kept, so upgrading again restores them. --- # Installation > Install the app and connect your GA4 account Source: https://help.pasilobus.com/google-analytics/installation App: GA4 Tracking (on the Shopify App Store as "Pasilobus Google Analytics") Shopify App Store: https://apps.shopify.com/pasilobus-google-analytics App help: https://help.pasilobus.com/google-analytics Section: Getting Started Last updated: 2026-02-08 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) ## Installing from the App Store 1. Visit the [Pasilobus Google Analytics](https://apps.shopify.com/pasilobus-google-analytics) app listing on the Shopify App Store 2. Click **Add app** to begin the installation 3. Follow the prompts to complete installation ## Connecting with Google The quickest way to connect is **Connect with Google** on the app's home page (first setup step) or on **Settings > GA4 Credentials**: 1. Click **Connect with Google**. Google's sign-in page opens in the full browser window. 2. Sign in with the Google account that manages your GA4 property and allow access to Google Analytics. 3. Back in the app, choose your GA4 web data stream from the list. Streams are grouped by Google Analytics account and property, so pick the account, then the property, then its web stream. 4. Tick the box to accept Google's user data collection terms for that property (Google requires this before an API secret can be created). 5. Click **Use this data stream**. The app fills in the Measurement ID and creates a Measurement Protocol API secret on that stream for you. It then gives up its access to your Google account: nothing else in Google Analytics is changed, and no Google login is kept. If you prefer, or if your Google account cannot manage the property, enter the two values by hand as described below. ## Getting Your GA4 Credentials by Hand Before the app can send data to Google Analytics, you need two pieces of information from your GA4 account: ### Finding Your Measurement ID 1. Go to [analytics.google.com](https://analytics.google.com) 2. Click the **Admin** gear icon in the bottom-left corner 3. Open **Data collection and modification > Data streams** 4. Select your web data stream 5. Your **Measurement ID** (starts with G-) is shown at the top—copy it ![Open Google Analytics Admin](https://pixels.pasilobus.com/docs/tutorial1.png) ![Open Data Streams](https://pixels.pasilobus.com/docs/tutorial2.png) ![Copy Measurement ID](https://pixels.pasilobus.com/docs/tutorial3.png) ### Creating an API Secret 1. In the same Data Stream details page, scroll down 2. Click **Measurement Protocol API secrets** 3. Click **Create** to generate a new secret 4. Give it a name (e.g., "Shopify Pasilobus Google Analytics") 5. Copy the **Secret value** ![Open Measurement Protocol secrets](https://pixels.pasilobus.com/docs/tutorial4.png) ![Create API Secret](https://pixels.pasilobus.com/docs/tutorial5.png) ![Copy the secret value](https://pixels.pasilobus.com/docs/tutorial6.png) ## Entering Credentials in the App 1. Open the Pasilobus Google Analytics app in your Shopify admin 2. Enter your **Measurement ID** in the first field 3. Enter your **API Secret** in the second field 4. Click **Save** Once saved, the API Secret is hidden and never shown again. To change it, paste a new secret into the field and save. Leaving the field empty keeps the secret you already saved. The app refuses a value that cannot be an API secret (for example the secret's nickname, or text with spaces). Google accepts events sent with any secret without reporting an error, so use **Send test event** (below) to confirm the secret belongs to your data stream. ![Enter credentials in app](https://pixels.pasilobus.com/docs/tutorial7.png) ## Verifying Tracking is Working To check your credentials straight away, open **Settings > GA4 Credentials** and click **Send test event**. The app sends an event named `pasilobus_connection_test` in debug mode; open **Admin > DebugView** in Google Analytics and it should appear within a minute. If it does not, the API secret does not belong to that data stream. To confirm everything is set up correctly: 1. Visit your store and browse a few pages 2. Add a product to cart 3. Wait 24-48 hours for data to appear in GA4 reports For real-time verification, use GA4's **DebugView**: 1. In Google Analytics, go to Admin > DebugView 2. Browse your store in a separate tab 3. Watch for events appearing in real-time If events aren't showing, check the [Events Not Showing](https://help.pasilobus.com/troubleshooting/events-not-showing) troubleshooting guide. ## Enabling the App Embed After saving your credentials, enable the app on your theme: 1. Select your theme from the dropdown 2. Click **Open Theme Editor** 3. In the theme editor, find "Pasilobus Google Analytics" in the App Embeds section 4. Toggle it **On** and click **Save** --- # How Tracking Works > Understand what events are tracked automatically Source: https://help.pasilobus.com/google-analytics/how-ga4-tracking-works App: GA4 Tracking (on the Shopify App Store as "Pasilobus Google Analytics") Shopify App Store: https://apps.shopify.com/pasilobus-google-analytics App help: https://help.pasilobus.com/google-analytics Section: Getting Started Last updated: 2026-02-08 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) ## What Gets Tracked The app automatically tracks all standard GA4 ecommerce events: | Event | When It Fires | |-------|---------------| | `page_view` | Customer views any page | | `view_item` | Customer views a product page | | `add_to_cart` | Customer adds a product to cart | | `remove_from_cart` | Customer removes a product from cart | | `begin_checkout` | Customer starts the checkout process | | `add_shipping_info` | Customer enters shipping information | | `add_payment_info` | Customer enters payment details | | `purchase` | Customer completes a purchase | | `search` | Customer performs a search | Each event includes relevant data like product IDs, names, prices, quantities, and transaction values. ## Server-Side Tracking The app uses server-side tracking for checkout and purchase events, making them resistant to ad blockers and privacy browsers. This means the events that matter most for revenue tracking are captured reliably. ## Data in GA4 After events are tracked, data typically appears in your GA4 reports within 24-48 hours. For real-time testing, use GA4's DebugView. --- # Standard Events > Configure which ecommerce events are tracked Source: https://help.pasilobus.com/google-analytics/standard-events App: GA4 Tracking (on the Shopify App Store as "Pasilobus Google Analytics") Shopify App Store: https://apps.shopify.com/pasilobus-google-analytics App help: https://help.pasilobus.com/google-analytics Section: Features Last updated: 2026-02-08 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) ## Standard GA4 Ecommerce Events The app tracks these events automatically: | Event | Description | Data Included | |-------|-------------|---------------| | `page_view` | Any page is viewed | Page URL, title | | `view_item` | Product page viewed | Product ID, name, price, brand | | `search` | Search performed | Search query | | `add_to_cart` | Product added to cart | Product ID, name, variant, unit price, quantity; value is the line total (price × quantity) | | `remove_from_cart` | Product removed from cart | Product ID, name, variant, unit price, quantity; value is the line total | | `begin_checkout` | Checkout started | Cart contents, total value | | `add_shipping_info` | Shipping info submitted | Shipping method, cart value | | `add_payment_info` | Payment info submitted | Payment method, cart value | Checkout steps (`begin_checkout`, `add_contact_info`, `add_shipping_info`, `select_shipping_method`, `add_payment_info`) are sent once per checkout: reloading the checkout page or retrying a declined card does not send them again, so your GA4 funnel is not inflated. Browser and server events share one GA4 client ID (the one Google's tag sets on your storefront, read with the shopper's analytics consent), so a shopper's browsing and their purchase appear as the same user in GA4. This holds from the first page: when a shopper accepts cookies on the page they landed on, their cart events on that page already use the same ID. | `purchase` | Order completed | Transaction ID, revenue, tax, shipping, items | ## Enabling/Disabling Events (Pro) On the **Pro** plan, you can toggle individual events on or off: 1. Open the Pasilobus Google Analytics app 2. Find the **Standard Events** section 3. Toggle events on (tracked) or off (not tracked) 4. Changes take effect immediately This is useful if you: - Only want to track conversion events (purchases) and want to reduce noise - Have another system (like Google & YouTube) already tracking certain events - Want to reduce data volume in GA4, especially on high-traffic stores On the **Free** plan, all standard events are tracked automatically and cannot be disabled. ## Enhanced Data Tracking Each event is sent to GA4 with detailed data—product names, prices, quantities, transaction values, tax, shipping, and more. This powers GA4's built-in ecommerce reports including product performance, shopping behavior analysis, checkout funnel visualization, and revenue attribution. --- # Custom Events > Create custom events to track specific interactions Source: https://help.pasilobus.com/google-analytics/custom-events App: GA4 Tracking (on the Shopify App Store as "Pasilobus Google Analytics") Shopify App Store: https://apps.shopify.com/pasilobus-google-analytics App help: https://help.pasilobus.com/google-analytics Section: Features Last updated: 2026-02-08 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Custom events are part of the **Max** plan. On other plans the Custom Events page shows the events you already have, and you can delete them, but adding or editing needs Max. ## What Are Custom Events? While standard events track the buying journey (view, cart, purchase), custom events let you track other important interactions: - Newsletter signup button clicks - Video plays - Download button clicks - Social media link clicks - Banner or promotion clicks - FAQ accordion opens - Size guide views These events appear in GA4 alongside your standard ecommerce events. ## Creating a Custom Event 1. Open the Pasilobus Google Analytics app 2. Open **Custom Events** in the app menu 3. Click **Add Event** 4. Configure your event (see options below) 5. Click **Save** The event is live on your storefront as soon as it is saved. Reload a storefront page to see it. Custom events are sent after Google's tag has loaded, so they reach GA4 like your page views do. ## Event Configuration Options ### Event Name The name that appears in GA4 (e.g., `newsletter_signup`). Use lowercase with underscores. ### Event Type Choose when the event should fire: | Type | Use Case | |------|----------| | **Page Visit** | Track when customers visit specific pages | | **Click** | Track button or link clicks | | **Form Submission** | Track form completions | | **Scroll Depth** | Track when a shopper scrolls past a share of the page. Set **Value** to the percentage (default 50) | ### Category, Action, Label and Value (Optional) GA4 only needs the event name. Category, Action and Label are sent as event parameters when you fill them in; leave them blank if your reports do not use them. Value is sent as the event's `value` (for Scroll Depth it is the percentage). ### Page Path (Optional) Limit the event to specific pages. Leave blank to track on all pages. **Wildcard support**: Use `*` to match any characters in the URL path. | Pattern | Matches | |---------|---------| | `/collections/*` | Any collection page | | `/products/*` | Any product page | | `/pages/faq` | Only the FAQ page | | `/blogs/*/tagged/*` | Blog posts with specific tags | ### Element Selector (for Click and Form events) Tell the app which element to track using CSS selectors: | Selector Type | Example | Tracks | |---------------|---------|--------| | ID | `#newsletter-form` | Element with id="newsletter-form" | | Class | `.signup-button` | Elements with class="signup-button" | | Data attribute | `[data-action="subscribe"]` | Elements with that data attribute | | Tag + class | `button.add-to-wishlist` | Button elements with that class | **Tip**: Right-click an element in your browser, select "Inspect", and look for unique IDs or classes. ## Example: Track Newsletter Signups 1. **Event Name**: `newsletter_signup` 2. **Event Type**: Click 3. **Page Path**: Leave blank (track on all pages) 4. **Element Selector**: `.newsletter-submit-button` ## Example: Track Size Guide Views 1. **Event Name**: `size_guide_view` 2. **Event Type**: Click 3. **Page Path**: `/products/*` (only on product pages) 4. **Element Selector**: `[data-action="size-guide"]` ## Testing Custom Events After creating a custom event: 1. Open your store in a new tab 2. Navigate to a page where the event should fire 3. Perform the action (click the button, visit the page, etc.) 4. Check GA4's **DebugView** (Admin > DebugView) to see the event in real-time If the event doesn't fire, double-check your element selector and page path match the actual page. ## Event Naming Best Practices - Use lowercase with underscores: `newsletter_signup` not `NewsletterSignup` - Be descriptive: `video_play` is better than `click1` - Be consistent: Use the same naming pattern across all custom events - Avoid spaces and special characters ## Managing Custom Events From the Custom Events page, you can: - **Edit**: Update the configuration - **Delete**: Remove events you no longer need. A deleted event stops firing on your storefront. There's no limit to the number of custom events you can create. --- # Tag Manager > Send data to multiple GA4 properties Source: https://help.pasilobus.com/google-analytics/tag-manager App: GA4 Tracking (on the Shopify App Store as "Pasilobus Google Analytics") Shopify App Store: https://apps.shopify.com/pasilobus-google-analytics App help: https://help.pasilobus.com/google-analytics Section: Features Last updated: 2026-02-08 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Tag Manager is available on every plan, including Free. ## Why Use Multiple Tags? Common scenarios for multiple tracking destinations: - **Agencies**: Send data to both your GA4 and your client's GA4 - **Multi-brand stores**: Track data in separate properties per brand - **Marketing teams**: Share conversion data with external partners - **Google Ads**: Track conversions directly in your Google Ads account ## Adding Additional GA4 Tags To send data to another GA4 property: 1. Open the Pasilobus Google Analytics app 2. Open **Tag Manager** in the app menu 3. Click **Add Tag** 4. Select **GA4 Property** 5. Enter the **Measurement ID** (G-XXXXXXXXXX) 6. Enter the **API Secret** for that property 7. Click **Save** The app will now send all tracked events to both your primary GA4 property and any additional tags you've added. ### Getting Credentials for Additional Properties Follow the same process as your primary GA4 setup: 1. Open the GA4 property you want to add 2. Go to Admin > Data collection and modification > Data streams > your web stream 3. Copy the Measurement ID 4. Create a new API Secret under Measurement Protocol API secrets 5. Copy the secret value ## Adding a Google Ads Tag The Google Ads tag is a single field: your Google Ads tag ID, for example `AW-123456789`. The app loads it on every storefront page, which is what Google Ads needs for remarketing audiences and for conversions that happen on the storefront. 1. In Tag Manager, click **Add Tag** 2. Select **Google Ads** 3. Enter your tag ID (`AW-` followed by digits) 4. Click **Save** Shopify's checkout does not run theme code, so the tag does not see purchases on its own. The tag's page shows a Custom Pixel snippet you can add under **Settings > Customer events** in Shopify for checkout conversions. ### Finding Your Google Ads Tag ID 1. Open [Google Ads](https://ads.google.com) 2. Go to Tools > Data manager > Google tag (or Tools & Settings > Conversions and open a conversion action's tag setup) 3. Copy the tag ID that starts with `AW-` ## Adding a Google Tag Manager Container 1. In Tag Manager, click **Add Tag** 2. Select **Google Tag Manager (GTM)** 3. Enter your container ID (`GTM-` followed by letters and digits) 4. Click **Save** The container loads on every storefront page, after the app has set Google Consent Mode defaults, so your container's tags start with the shopper's consent choice. Shopify's checkout does not run theme code, so container tags do not fire in checkout; purchases still reach your main GA4 property through this app. ## Managing Tags From the Tag Manager page, you can: - **View**: See all configured tags - **Edit**: Update credentials for a tag - **Remove**: Delete tags you no longer need Changes take effect immediately for new events. ## Data Sent to Additional Tags Additional GA4 tags with an API secret receive the same events as your primary property: - All standard ecommerce events, including checkout and purchase - The same product and transaction data A GA4 tag without an API secret receives storefront events only (page and product views). This ensures consistent data across all your analytics properties. --- # Refund Tracking > Automatically track refunds in GA4 Source: https://help.pasilobus.com/google-analytics/refund-tracking App: GA4 Tracking (on the Shopify App Store as "Pasilobus Google Analytics") Shopify App Store: https://apps.shopify.com/pasilobus-google-analytics App help: https://help.pasilobus.com/google-analytics Section: Features Last updated: 2026-02-08 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) ## Why Track Refunds? Without refund tracking, your GA4 reports show gross revenue—every purchase, even ones you later refunded. This makes your revenue data misleading and inflates your reported numbers. Most GA4 setups on Shopify—including Google's own Google & YouTube sales channel—don't track refunds. This means any store processing returns has inaccurate revenue data in GA4 by default. With refund tracking enabled: - GA4 automatically calculates net revenue (purchases minus refunds) - Your ecommerce reports reflect actual retained revenue - You can analyze refund patterns and rates - Revenue attribution becomes more accurate for marketing decisions ## Enabling Refund Tracking 1. Open the Pasilobus Google Analytics app 2. Find the **Refund Tracking** section 3. Click **Enable** 4. Refunds will now be sent to GA4 automatically To disable, click **Disable** in the same section. ## What Gets Sent to GA4 When you process a refund in Shopify, a `refund` event is sent to GA4 with: - Original order ID (links the refund to the original purchase) - Refund amount - Currency - Refunded items and quantities (for partial refunds) For partial refunds, only the refunded portion is sent. Full refunds include the complete order value. ## Viewing Refunds in GA4 Once enabled, refund data appears in: - **Monetization > Ecommerce purchases**: Revenue adjusted for refunds - **Explore reports**: Build custom reports including refund events GA4 automatically subtracts refund amounts from your revenue totals, giving you a true picture of retained revenue. ## Limitations - Refund tracking works for orders placed after you installed the app, since the app needs to have recorded the original purchase - Refunds processed more than 60 days after the original order will not be sent to Google Analytics - Orders placed by customers using strict ad blockers may not have full tracking data available for refund matching --- # Cross-Device Tracking > Track logged-in customers across multiple devices in GA4 Source: https://help.pasilobus.com/google-analytics/cross-device-tracking App: GA4 Tracking (on the Shopify App Store as "Pasilobus Google Analytics") Shopify App Store: https://apps.shopify.com/pasilobus-google-analytics App help: https://help.pasilobus.com/google-analytics Section: Features Last updated: 2026-02-10 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) ## What is Cross-Device Tracking? By default, GA4 treats each device as a separate user. A customer who browses on their phone and buys on their laptop looks like two different visitors in your reports. This inflates your user count and breaks the customer journey in your analytics. Cross-device tracking solves this by sending a unique identifier (the Shopify customer ID) to GA4 when a customer is logged in. GA4 uses this to connect sessions from the same person across different devices, giving you a single, accurate view of each customer's journey. ## How It Works When a logged-in customer triggers any event on your store (add to cart, checkout, purchase, etc.), the app sends their Shopify customer ID to GA4 as a `user_id`. GA4 then links all sessions with the same `user_id` together, regardless of which device or browser was used. This only works for logged-in customers. Anonymous visitors are still tracked by device as usual. ## Enabling Cross-Device Tracking 1. Open the Pasilobus Google Analytics app 2. Find the **Cross-Device Tracking** section 3. Click **Enable** Once enabled, all events from logged-in customers will include their user ID. ## Verifying in GA4 To confirm cross-device tracking is working: 1. In GA4, go to **Admin > Reporting Identity** 2. Set reporting identity to **Blended** (recommended) or **Observed** 3. Go to **Explore > User Explorer** to see users identified by their Shopify customer ID With **Blended** reporting identity, GA4 uses the user ID to deduplicate users across devices, giving you a more accurate user count. ## Requirements - **Pro plan** required - Customers must be logged in to their account on your store - Works for all events tracked by the app (add to cart, checkout, purchase, etc.) --- # Using Both Apps Together > How to use both apps together without duplicate tracking Source: https://help.pasilobus.com/google-analytics/google-youtube-channel App: GA4 Tracking (on the Shopify App Store as "Pasilobus Google Analytics") Shopify App Store: https://apps.shopify.com/pasilobus-google-analytics App help: https://help.pasilobus.com/google-analytics Section: Guides Last updated: 2026-02-10 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) ## What is the Google & YouTube Channel? The [Google & YouTube](https://apps.shopify.com/google) app (developed by Google) connects your store to: - **Google Merchant Center**: Sync your product catalog to Google - **Google Shopping**: List products in Google Shopping results - **YouTube Shopping**: Tag products in YouTube videos - **Google Ads**: Run Shopping and Performance Max campaigns If you're running Google Shopping ads or want your products to appear in Google search results, you need this app. ## Do I Need Both Apps? **Yes, for most merchants.** The two apps serve different purposes and complement each other: - **Google & YouTube** is for product feeds, Shopping ads, and YouTube integration - **Pasilobus Google Analytics** is for accurate, customizable GA4 analytics Think of it this way: Google & YouTube gets your products in front of customers. Pasilobus Google Analytics tells you exactly what those customers do on your store. | Feature | Google & YouTube | Pasilobus Google Analytics | |---------|------------------|---------------------------| | Product feed to Google Merchant Center | Yes | — | | Google Shopping campaigns | Yes | — | | YouTube Shopping | Yes | — | | GA4 ecommerce tracking | Yes | Enhanced | | Choose which events to track | — | Yes (Pro) | | Custom events (clicks, forms, page visits, scroll depth) | — | Yes (Max) | | Multiple GA4 properties | — | Yes | | Refund tracking in GA4 | — | Yes (Max) | | Cross-device tracking | — | Yes (Pro) | ## What Pasilobus Google Analytics Adds ### Event Customization With Google & YouTube, you get a fixed set of events with no control. Pasilobus Google Analytics lets Pro users choose exactly which events to send. This is useful if: - You only care about conversion events and want to reduce noise - Another system already tracks certain events - You want to stay within GA4's event limits on high-traffic stores ### Custom Events Google & YouTube doesn't offer custom event tracking. With Pasilobus Google Analytics, you can track interactions specific to your store—newsletter signups, video plays, size guide clicks, banner interactions—and see them in GA4 alongside your ecommerce data. ### Multiple GA4 Properties Need to send data to more than one GA4 property? Common for agencies managing client analytics or stores with multiple brands. Pasilobus supports additional measurement IDs through the Tag Manager feature. Google & YouTube only supports one. ### Refund Tracking When you process a refund in Shopify, Google & YouTube doesn't send that information to GA4. This means your GA4 revenue reports are always overstated. Pasilobus Google Analytics (Pro plan) automatically sends refund events to GA4, so your revenue numbers reflect actual retained revenue—not just gross sales. ### Cross-Device Tracking GA4 treats each device as a separate user by default. A customer who browses on their phone and buys on their laptop appears as two different visitors. Pasilobus Google Analytics (Pro plan) sends the Shopify customer ID to GA4 for logged-in customers, allowing GA4 to connect sessions across devices and give you accurate user counts. Google & YouTube doesn't offer this. ## Avoiding Duplicate Tracking Both apps can send data to GA4, which causes duplicate events. To prevent this, disable GA4 tracking in the Google & YouTube app. ### How to Disable GA4 in Google & YouTube 1. In Shopify Admin, go to **Sales Channels > Google & YouTube** 2. Look for the **Google Analytics** section 3. Click **Disconnect** next to your GA4 property Or via settings: 1. Go to **Sales Channels > Google & YouTube > Settings** 2. Find **Google tag** and click **Manage** 3. Remove any Google Analytics connections After disconnecting, Pasilobus Google Analytics handles all GA4 tracking while Google & YouTube continues to manage your product feeds and Shopping campaigns. ## Other Sources of Duplicate Tracking If you're seeing duplicate events in GA4 after disabling tracking in Google & YouTube, check: ### Theme Code 1. Go to **Online Store > Themes > Edit code** 2. Search for `gtag` or `G-` in theme files 3. Remove any hardcoded GA4 scripts ### Google Tag Manager If you use GTM, check for active GA4 Configuration tags and pause them. ### Checkout Scripts Go to **Settings > Checkout** and check the **Additional scripts** section for any GA4 code. ## Verifying Your Setup To confirm only one source is tracking: 1. Open GA4 **DebugView** (Admin > DebugView) 2. Browse your store and add a product to cart 3. Each event should appear only once If you see events firing twice within 1-2 seconds, you still have duplicate tracking somewhere. --- # Why GA4 Shows Less Data Than Shopify > Understanding the difference between GA4 and Shopify reports Source: https://help.pasilobus.com/google-analytics/ga4-vs-shopify-data App: GA4 Tracking (on the Shopify App Store as "Pasilobus Google Analytics") Shopify App Store: https://apps.shopify.com/pasilobus-google-analytics App help: https://help.pasilobus.com/google-analytics Section: Guides Last updated: 2026-02-08 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) ## Why GA4 Shows Less Data Shopify tracks every order directly in its system. GA4 relies on tracking events that fire when customers complete checkout. Several things can prevent those events from being tracked: ### Ad Blockers and Privacy Tools Some customers use browser extensions or privacy settings that block analytics tracking. While Pasilobus Google Analytics is designed to work around most blockers, some extreme privacy configurations can still prevent tracking. ### Orders Before App Installation GA4 only tracks orders placed after you installed and configured the app. Historical orders won't appear in GA4. ### Manual and Draft Orders Orders created manually in Shopify Admin (like phone orders) or draft orders converted to orders may not trigger tracking events. ### Payment Processing Issues If a customer's payment fails and they retry, or if there's a delay in payment confirmation, the tracking event might not fire correctly. ### International Checkout Redirects Some payment methods redirect customers to external sites (like certain local payment providers), which can interrupt tracking. ## What's Normal? For most stores, GA4 captures **90-98%** of orders tracked by Shopify. The exact percentage depends on: - Your customer base (tech-savvy audiences use more ad blockers) - Payment methods offered - Geographic regions you sell to A 5-10% difference between GA4 and Shopify is typical and expected. ## Which Numbers Should I Trust? **For revenue and order counts**: Always use Shopify's reports as your source of truth. Shopify captures every order regardless of tracking. **For customer behavior analysis**: Use GA4. It shows you how customers browse, what they add to cart, where they drop off, and which marketing channels drive traffic. **For conversion optimization**: Use GA4's funnel analysis to understand the customer journey, but remember the actual conversion numbers are slightly higher than reported. ## Comparing Data Correctly When comparing GA4 to Shopify: 1. **Use the same date range**: Make sure both reports cover identical periods 2. **Account for time zones**: GA4 and Shopify may use different time zones 3. **Wait 48 hours**: GA4 data can take up to 48 hours to finalize 4. **Filter by currency**: If you sell in multiple currencies, compare the same currency in both systems ## Improving Tracking Accuracy To maximize tracking accuracy: - **Keep the app embed enabled**: Make sure Pasilobus Google Analytics is toggled on in your theme's App Embeds - **Don't duplicate tracking**: Remove other GA4 tracking scripts to avoid conflicts - **Keep credentials current**: If you regenerate your GA4 API secret, update it in the app Even with perfect setup, some gap between Shopify and GA4 is unavoidable due to ad blockers and privacy tools. Focus on trends and relative changes rather than exact numbers matching. --- # Events Not Showing in GA4 > Fix missing events in Google Analytics Source: https://help.pasilobus.com/google-analytics/events-not-showing App: GA4 Tracking (on the Shopify App Store as "Pasilobus Google Analytics") Shopify App Store: https://apps.shopify.com/pasilobus-google-analytics App help: https://help.pasilobus.com/google-analytics Section: Troubleshooting Last updated: 2026-02-08 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) ## Check Your Credentials The most common issue is incorrect or missing credentials. 1. Open the Pasilobus Google Analytics app 2. Verify your **Measurement ID** starts with `G-` and matches your GA4 property 3. Check that an **API Secret** is saved. The app never shows a saved secret again, so if you're not sure it's the right one, create a new secret and paste it in (see below) 4. Click **Send test event** on **Settings > GA4 Credentials**, then open **Admin > DebugView** in GA4. An event named `pasilobus_connection_test` should appear within a minute. If it does not, the secret belongs to another data stream. The simplest fix for wrong credentials is **Connect with Google** on the same page: choose your data stream and the app fills in the Measurement ID and creates a fresh API secret. ### Verify in GA4 1. Go to [analytics.google.com](https://analytics.google.com) 2. Select your property 3. Go to Admin > Data collection and modification > Data streams 4. Click your web stream 5. Confirm the Measurement ID matches what's in the app ### Create a New API Secret If unsure about your API secret: 1. In GA4, go to Admin > Data collection and modification > Data streams > your stream 2. Click **Measurement Protocol API secrets** 3. Click **Create** to generate a new secret 4. Copy the new secret value 5. Paste it into the Pasilobus Google Analytics app and save ## Check App Embed is Enabled The app embed must be enabled in your theme: 1. In Shopify Admin, go to **Online Store > Themes** 2. Click **Customize** on your active theme 3. Click **App embeds** (bottom left) 4. Find "Pasilobus Google Analytics" and ensure it's toggled **On** 5. Click **Save** If you don't see the app in App embeds, try reinstalling the app. ## GA4 Reporting Delay GA4 does not show data in real-time reports immediately. Standard reports can take **24-48 hours** to update. ### Use DebugView for Real-Time Testing 1. In GA4, go to Admin > DebugView 2. Open your store in another browser tab 3. Browse some pages and add a product to cart 4. Watch DebugView for events appearing in real-time If events appear in DebugView but not in reports, just wait—data will appear within 48 hours. ## Common Configuration Mistakes ### Wrong Property Selected Make sure you're checking the correct GA4 property. If you have multiple properties, verify the Measurement ID matches. ### Using Universal Analytics ID Measurement IDs starting with `UA-` are for the old Universal Analytics, which is now deprecated. You need a GA4 property with a `G-` ID. ### API Secret from Wrong Stream If you have multiple data streams (web, iOS, Android), make sure your API secret is from the **web** data stream. ### Tracking Blocked by Browser While server-side tracking bypasses most ad blockers, some extreme privacy settings may interfere. Test in an incognito/private window with no extensions. ## Still Not Working? If you've verified all the above and events still aren't appearing: 1. Try disabling and re-enabling the app embed 2. Clear your browser cache and test again 3. Contact support with your Measurement ID (don't share your API secret) --- # Installation > Install Image Gallery on your store Source: https://help.pasilobus.com/image-gallery/installation App: Image Gallery (on the Shopify App Store as "Pasilobus Image Gallery") Shopify App Store: https://apps.shopify.com/image-gallery-1 App help: https://help.pasilobus.com/image-gallery Section: Getting Started Last updated: 2026-08-24 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Image Gallery turns scattered product photos, lifestyle shots, and brand imagery into polished, on-page galleries you can drop onto any storefront page. It works through a single theme block, so there's nothing to embed across your whole theme — you decide exactly where each gallery shows up. ## Installing the App Install Image Gallery the same way you install any other app: - **From the Shopify App Store** - Visit the Image Gallery listing and click **Add app**. - **Approve the install** - Shopify will ask you to confirm. After approval you're taken straight into the app inside your admin. - **No theme setup wizard** - Image Gallery doesn't change anything in your theme by itself. You add a gallery to a page only when you're ready, page by page. ## What to Do Next Once the app is open in your admin, the dashboard is where everything starts: - **Create your first gallery** - Click **Create Gallery**, give it a title (for your reference, not the storefront), pick a layout, and drop your images straight into the create screen. They're attached as soon as the gallery is created. - **Arrange it** - On the gallery page, everything sits on one canvas: layout, images per row for desktop and mobile, and the images themselves. Drag tiles to reorder, then Save. - **Install it on a page** - From the gallery page, click **Install to Theme**. The app walks you through copying the Gallery ID and opening the theme editor with the block ready to add. ## Where to Find the App After install, the app lives inside your Shopify admin under **Apps > Image Gallery**. You can pin it to your admin sidebar by clicking the pin icon next to the app name — handy if you publish galleries regularly. You can install Image Gallery on as many development and live themes as you want; each gallery you create is available to every theme on your store. --- # How Image Gallery Works > Understand galleries, the image library, and the theme block Source: https://help.pasilobus.com/image-gallery/how-image-gallery-works App: Image Gallery (on the Shopify App Store as "Pasilobus Image Gallery") Shopify App Store: https://apps.shopify.com/image-gallery-1 App help: https://help.pasilobus.com/image-gallery Section: Getting Started Last updated: 2026-08-24 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Image Gallery is built around three pieces that work together: galleries, your image library, and the theme block. Once you understand how they fit, adding new galleries to your storefront takes a couple of minutes. ## The Three Building Blocks - **Galleries** - A gallery is a named set of images with a layout (Grid, Masonry, Mosaic, Collage, or Carousel), an image order, and its own images-per-row counts for desktop and mobile. You build all of that on one page in the app. Each gallery has a unique **Gallery ID** (for example, `gal_abc123`). - **Image Library** - Every image you upload is saved to a shared library. The same image can appear in many galleries without uploading it twice, which keeps your storage usage low and your titles and alt text consistent. - **Theme Block** - The block is what renders a gallery on your storefront. You add it to any page through the Shopify theme editor and tell it which gallery to show by pasting in the Gallery ID. It adds page-level polish — spacing, captions, the lightbox — on top of the gallery's own layout. ## A Typical Workflow Most merchants follow the same path the first time: - **Create a gallery** - From the dashboard, click **Create Gallery**, give it a title, and drop your images straight into the create screen. - **Arrange it** - On the gallery page, pick a layout and how many images sit in a row, drag images into the order you want, and watch the canvas re-flow as you go. - **Save** - One Save commits the settings and any new images together. - **Install to theme** - Click **Install to Theme**, copy the Gallery ID, and open the theme editor. - **Add the block** - The theme editor opens with the Image Gallery block ready to drop in. Paste the Gallery ID into its settings and save. ## Why It's Designed This Way The split between galleries (managed in the app) and blocks (placed in the theme) means your storefront doesn't have to change every time you swap an image. How the gallery looks is decided in the app, against your real images, so the preview you approve is what ships. Update the gallery — new images, a different layout, a new order — and every page using its Gallery ID picks up the change. Need the same gallery on five pages? Add the block five times; they all stay in sync. --- # Creating a Gallery > Create a gallery and set it up on one page Source: https://help.pasilobus.com/image-gallery/creating-a-gallery App: Image Gallery (on the Shopify App Store as "Pasilobus Image Gallery") Shopify App Store: https://apps.shopify.com/image-gallery-1 App help: https://help.pasilobus.com/image-gallery Section: Features Last updated: 2026-08-24 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) A gallery is the unit you install on a page — it groups a set of images, a layout, and a unique Gallery ID together so the theme block knows what to render. Everything about it lives on one page in the app: the title, the layout, how many images sit in a row, and the images themselves, all saved together. You can have as many galleries as your plan allows, and each one is independent. ## Creating a New Gallery From the app dashboard: - **Open Galleries** - Click **Galleries** in the sidebar (or the dashboard tile). - **Click Create Gallery** - The button is in the top right of the galleries list. - **Fill in the title** - The title is for your reference inside the app and doesn't appear on the storefront. Use something descriptive like "Spring Lookbook" or "Customer Photos". - **Choose a layout and images per row** - The same controls you'll use later on the gallery page. You can change both at any time. - **Add your images right away** - Drag files into the drop zone on the create screen. They upload while you fill in the rest and are attached the moment the gallery is created. - **Click Create gallery** - You land on the gallery's page with your images already in place. ## The Gallery Page The gallery page is a single canvas — settings at the top, images below, one Save for both: - **Gallery settings card** - Title, **Layout**, and **Images per row**, plus a **Save** button. A short note under the settings explains how the chosen layout uses the images-per-row number. - **Desktop and Mobile toggle** - In the top right of the settings card. **Desktop** sets the count used from 750 px wide upwards (2-6). **Mobile** narrows the canvas to phone width and swaps in a separate count for narrower screens (1-4). Both are stored on the gallery and both are honoured by your storefront. - **Images card** - Your actual images, laid out in the layout you picked. It doubles as the preview: change the layout or the column count and the canvas re-flows immediately. - **Toolbar buttons** - **Import from Collection**, **Select from Library**, and **Upload images**. - **Install to Theme** - In the page header, for when you're ready to put the gallery on a page. ## Saving Your Changes Everything on the page is one form: - **Make your changes** - Edit the title, pick a layout, change images per row, drop in new images. - **A save bar appears** at the top of the page as soon as anything is unsaved. - **Click Save** - Either the save bar's Save or the button in the settings card. Both save the settings and any pending uploads together. - **Click Discard** in the save bar to throw the changes away and return to the last saved state. Two actions save on their own and don't wait for the Save button: dragging images into a new order, and setting a Mosaic tile size from the badge on a tile. ## Renaming a Gallery Change the **Title** field in the gallery settings card and save. There is no separate edit page — the gallery page covers everything. The Gallery ID never changes when you rename, so blocks already using it keep working. ## The Gallery ID Every gallery gets a permanent Gallery ID like `gal_abc123`. This is the value you paste into the theme block to link the block to a gallery. You'll find it in two places: - **On the Install to Theme screen** for that gallery, with a one-click copy button. - **On the Installation page**, which lists every gallery next to its ID. --- # Uploading Images > Add images to a gallery from your computer Source: https://help.pasilobus.com/image-gallery/uploading-images App: Image Gallery (on the Shopify App Store as "Pasilobus Image Gallery") Shopify App Store: https://apps.shopify.com/image-gallery-1 App help: https://help.pasilobus.com/image-gallery Section: Features Last updated: 2026-08-24 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Uploading images is the fastest path from "I have photos" to "they're live on my store." Every gallery page takes drag-and-drop or file picker selections, and processes them in the background so you can keep working while large files finish. You can also pull images straight from a Shopify collection instead of uploading them at all. ## Uploading from Your Computer You can add images while creating a gallery or at any time afterwards: - **On a new gallery** - The create screen has a drop zone under the settings. Files start uploading immediately and are attached when you click **Create gallery**. - **On an empty gallery** - The same drop zone fills the images card until the first image lands. - **On a gallery that already has images** - Click **Upload images** in the images card toolbar to open a file picker. Hold Cmd or Ctrl to select several files at once. - **Drag and drop onto the drop zone** - Drag files (one or many) from Finder, Explorer, or your desktop straight into it. - **Watch the previews appear** - Each file shows a preview tile as it uploads, so you can see what's been added before saving. - **Click Save** - The save bar at the top of the page (or the Save button in the settings card) commits the uploads along with any settings you changed. Until you save, the images aren't attached yet. ## Importing from a Shopify Collection If the images you want are already on your products, you don't need to download and re-upload them: - **Click Import from Collection** in the images card toolbar. - **Pick a collection** from the Shopify picker. - **The import runs in the background** - Every product image in that collection is fetched and added to the gallery. - **Refresh the page after a moment** to see them appear. Large collections take longer. Imported images join your shared library like any upload, and count towards your storage. ## Supported File Types Image Gallery accepts the file types most stores use: - **JPG / JPEG** - Best for photos. - **PNG** - Best for graphics with transparency. - **GIF** - Animated GIFs are supported. - **WebP** - Modern format with smaller file sizes. - **SVG** - For logos and vector artwork. There's no fixed file size limit, but very large images take longer to upload and process. For best storefront performance, export photos at the dimensions you actually need (most gallery layouts look great at 1200-1600 px wide). ## Storage Usage The drop zone shows how much storage you have left on your plan. Each upload counts toward your storage quota. - **Free plan** - Storage is limited. - **Paid plans** - More storage. Visit **Plans** in the app to see the exact amount included with each plan. - **Removing images** frees up the storage they were using. ## What Happens After Upload Uploaded images are saved to your **shared image library**, not just the gallery you uploaded them to. This means: - **New images land at the end of the gallery** - Drag any tile to move it; the new order saves on its own, without waiting for the Save button. - **You can reuse the same image** in other galleries without uploading it again. - **Removing an image from one gallery** doesn't delete it from the library — it stays available for other galleries. - **Editing the title, alt text, or description** on an image updates it everywhere the image appears. --- # Image Library > Reuse images across multiple galleries Source: https://help.pasilobus.com/image-gallery/image-library App: Image Gallery (on the Shopify App Store as "Pasilobus Image Gallery") Shopify App Store: https://apps.shopify.com/image-gallery-1 App help: https://help.pasilobus.com/image-gallery Section: Features Last updated: 2026-08-24 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) The image library is your shared pool of every image you've uploaded to the app. Instead of re-uploading the same product photo for every gallery, you upload it once and add it to as many galleries as you need. This keeps your storage usage low and means any edits — like updating alt text for SEO — propagate everywhere. ## How the Library Works Every time you upload an image to any gallery, that image is also saved to your library: - **One upload, many galleries** - Add the same image to a "New Arrivals" gallery, a "Featured Products" gallery, and a homepage gallery without re-uploading. - **Editing applies everywhere** - Updating an image's title, description, or alt text updates it in every gallery it's used in. - **Position and tile size stay per gallery** - Where an image sits in the order, and its Mosaic tile size, belong to each gallery separately. The same photo can lead one gallery and sit fifth in another. - **Removing from a gallery keeps it in the library** - The image stays available; only its placement in that one gallery is removed. ## Adding Library Images to a Gallery Open the gallery you want to add images to and look for the **Select from Library** button in the images card toolbar: - **Click Select from Library** - A picker opens showing every image already in your library. - **Pick multiple images** - Tap each image you want to add. Selected images get a highlight. - **Confirm your selection** - The chosen images appear at the end of the gallery canvas with a "Library" badge so you can tell them apart from images already saved. - **Click Save** - Use the save bar or the Save button in the settings card. Until you save, the picks aren't linked yet; the small x on a badged tile drops it again. If the **Select from Library** button isn't showing, it means every image in your library is already in this gallery, or the library is empty. ## Editing an Image's Details Hover over any image in a gallery and click the edit icon in its top-right corner. From there you can set: - **Title** - Shown as the caption when **Image titles** is enabled in the block settings. - **Alt text** - Important for accessibility and SEO. Describe what the image shows. - **Description** - A longer line shown when **Image descriptions** is enabled in the block settings. Edits save straight to the library, so every other gallery using the same image picks up the new text immediately. ## Removing vs Deleting These two actions are different: - **Remove from gallery** - The image stays in your library and in any other gallery that uses it. Use this when you just want to swap something out of one gallery. - **Delete from library** - The image is gone everywhere, and storage is freed up. Use this only when you no longer need the file at all. --- # Gallery Layouts > Choose between Grid, Masonry, Mosaic, Collage, and Carousel Source: https://help.pasilobus.com/image-gallery/layouts App: Image Gallery (on the Shopify App Store as "Pasilobus Image Gallery") Shopify App Store: https://apps.shopify.com/image-gallery-1 App help: https://help.pasilobus.com/image-gallery Section: Features Last updated: 2026-08-24 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Layout choice is what gives a gallery its personality. The same set of images can feel like a clean product grid, an editorial lookbook, a Pinterest-style mosaic, or a swipeable strip depending on which layout you pick. Image Gallery offers five layouts, all chosen in the app on the gallery's own page — so the canvas you arrange is what your visitors get — and none of them require you to resize your images first. ## The Five Layouts - **Grid — uniform tiles** - Every tile the same shape. The most predictable layout, perfect for product catalogues and structured pages. The tile shape is set on the theme block with **Grid tile shape**: Square (1:1), Portrait (3:4), Landscape (4:3), or Original ratio if you'd rather not crop at all. - **Masonry — original heights, no cropping** - Variable-height tiles that respect each image's proportions. Columns stay straight but rows don't line up, which is what gives it the editorial feel. Great when portrait, landscape, and square images mix together. Your images are never cropped. - **Mosaic — mixed tile sizes** - A patchwork where tiles differ in size: some span two columns, some two rows, some both. Roughly half the tiles come out non-square, and you can override any individual tile yourself — see "Sizing Individual Tiles" below. - **Collage — a hero tile every eight images** - Every 8th image (the 1st, 9th, 17th and so on) becomes a large tile spanning two columns and two rows, with the rest filling in around it. Good for long galleries that need a rhythm of focal points rather than a single hero at the top. - **Carousel — a sliding strip** - Shows as many images at once as your **Images per row** setting, and each click of the arrows advances by one image. At the end it wraps back to the start. Set Images per row to 1 for a classic one-at-a-time slideshow, or 3 for a scrolling filmstrip. ## Choosing a Layout The layout belongs to the gallery, and you set it in the app — there is no Layout setting in the theme editor: - **Open the gallery** in the app. - **Pick a layout** from the **Layout** dropdown in the **Gallery settings** card at the top of the page. - **Watch the canvas below redraw** - The images card is a live preview: it re-lays your real images in the layout you just picked, so you can judge it before committing. - **Click Save** - Use the **Save** button in the settings card, or the save bar that appears at the top of the page. Nothing reaches your storefront until you save. Because the layout lives on the gallery, every page where that gallery is installed switches together. If you want two different looks, create a second gallery, pull the same pictures in from your library, and give it a different layout. ## Images per Row **Images per row** sits next to the Layout dropdown, and each layout treats it slightly differently: - **Grid** - An exact count. Every row holds that many tiles. - **Masonry** - The column count. Rows won't line up evenly, because each image keeps its own height. - **Mosaic** - A target. Rows containing a tile that spans two columns fit fewer images. - **Collage** - A target, for the same reason: hero tiles take up two columns. - **Carousel** - How many slides are visible at once. The app shows a short note under the setting explaining this for whichever layout is selected. Desktop and mobile each have their own count — see "Creating a Gallery" for the Desktop and Mobile toggle. ## Sizing Individual Tiles (Mosaic) The Mosaic layout lets you decide which images deserve more space: - **Hover over any image** in the gallery canvas. - **Click the size badge** in the top-left corner of the tile. It cycles through **auto → large → wide → tall**. - **Large** spans two columns and two rows, **wide** spans two columns, **tall** spans two rows, and **auto** lets the app decide. - **The change saves on the spot** and the canvas re-flows immediately — tile sizes don't wait for the Save button. An **auto** tile follows the app's built-in mosaic pattern, which mixes large, wide, and tall tiles so the gallery reads as a mosaic rather than a grid. Setting a size by hand overrides that one tile; every other image keeps the automatic pattern. Tile sizes apply **only** to the Mosaic layout. In Grid, Masonry, Collage, and Carousel the badge is hidden because the size would change nothing — but the value you set is remembered, so switching back to Mosaic restores it. ## Tips for Choosing a Layout - **Lots of product photos you want easy to compare** - Grid with the Square tile shape. - **A mix of portrait and landscape shots, no cropping** - Masonry. - **A lively, editorial patchwork with visual hierarchy** - Mosaic, with your best shots set to Large. - **A long gallery that needs regular focal points** - Collage. - **A compact strip that doesn't take over the page** - Carousel with 3 or 4 images per row. --- # Lightbox and Captions > Open full-size images and show titles on your gallery Source: https://help.pasilobus.com/image-gallery/lightbox-and-captions App: Image Gallery (on the Shopify App Store as "Pasilobus Image Gallery") Shopify App Store: https://apps.shopify.com/image-gallery-1 App help: https://help.pasilobus.com/image-gallery Section: Features Last updated: 2026-08-24 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) The lightbox lets visitors click any image in your gallery to view it full-size on a dimmed overlay, then page through the rest of the gallery with previous and next arrows. Captions display each image's title and description, either on hover or below the image, depending on what fits your design. ## Turning the Lightbox On or Off The lightbox is configured in the block's settings inside the theme editor, not in the app: - **Open the theme editor** - Go to **Online Store > Themes > Customize** and find the page with the Image Gallery block. - **Click the block** - The block settings panel opens on the right. - **Toggle Enable lightbox on click** - On by default. Turn off if you want clicks on images to do nothing (for example, if you're showing the gallery as decorative content). - **Save** - The change is live on your storefront immediately. ## Lightbox Background When the lightbox is on, you can choose how the overlay looks: - **Dark** - A near-black overlay (~92% opacity). The default, and the right choice for most stores — it makes images pop and feels cinematic. - **Light** - A near-white overlay (~95% opacity). Use this if your store has a light, airy aesthetic and dark overlays feel too heavy. ## Navigating the Lightbox Visitors can move through your gallery without closing the lightbox: - **Previous and next arrows** - On screen at the left and right edges. - **Keyboard arrows** - Left and right arrow keys cycle through images. - **Escape key** - Closes the lightbox. - **Click outside the image** - Also closes the lightbox. ## Image Captions The block has two caption settings — **Image titles** and **Image descriptions** — and each offers the same three choices, so you can show one, both, or neither: - **Hidden** - No caption appears. The cleanest look — good when images speak for themselves. - **Show on hover** - The text appears as an overlay when the visitor hovers (desktop) or after a tap (mobile). Keeps the gallery uncluttered but lets curious visitors see context. - **Show below image** - The text sits as a small caption underneath each image. Always visible — good for lookbooks where you want to credit products, models, or locations. Descriptions render smaller and slightly subdued next to the title, so a title plus a description reads as a heading and a line of detail rather than two competing captions. ## Where Captions Come From Captions come from the **Title** and **Description** fields on each image. To edit them: - **Open the gallery** in the app. - **Hover the image** you want to update and click the edit icon in its top-right corner. - **Edit the Title** - Shown wherever Image titles is set to hover or below. - **Edit the Description** - Shown wherever Image descriptions is set to hover or below. - **Edit Alt text** - Separate from the caption. Alt text is for accessibility and SEO and is read by screen readers and search engines. - **Click Save** in the editor - The tile updates on the spot, and the change applies to every gallery using that image. If an image has no title, no title caption is shown for that image even when captions are enabled — the same goes for descriptions. --- # Shoppable Hotspots > Link points on an image to the products in it Source: https://help.pasilobus.com/image-gallery/shoppable-hotspots App: Image Gallery (on the Shopify App Store as "Pasilobus Image Gallery") Shopify App Store: https://apps.shopify.com/image-gallery-1 App help: https://help.pasilobus.com/image-gallery Section: Features Last updated: 2026-08-24 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) A hotspot is a point you place on a gallery image that links to a product. Shoppers see a small marker on the image, tap it, and get a card with the product's photo, name and price that takes them straight to the product page. It turns a lookbook or styled photo into something people can buy from, without you having to describe which product is which. Hotspots belong to the image itself, not to one gallery. Place them once and they follow that image into every gallery it appears in. ## Adding a hotspot Open a gallery and hover the image you want to make shoppable. The tile's buttons appear in the top corner — click the cart icon to open the hotspot editor. In the editor, click anywhere on the image to drop a hotspot at that point. The panel on the right is where you say what it links to: - **Product** - Click **Browse** to search your catalogue and pick a product. The product's name fills in as the label automatically, and you can change it. - **Custom URL** - Link anywhere instead: a collection, a size guide, another page on your store. - **Label** - What the hotspot is called. Shoppers see it on the product card, and it's read out by screen readers. Click **Save** to store it. A numbered marker stays on the image so you can see what you've placed. ## Moving and removing hotspots Drag any marker to reposition it — the new position saves as soon as you let go. To change or delete one, click it and the panel on the right switches to that hotspot, where **Remove** deletes it. Positions are stored as a percentage of the image rather than a fixed pixel, so a hotspot stays on the same part of the picture no matter what size the image is displayed at — grid, mosaic or full-screen. ## What shoppers see Images with hotspots get a small **Shop** badge in the corner, so shoppers know there's something to tap. Opening the image full-size shows the markers, gently pulsing to draw the eye. Tapping a marker opens a product card with the product's image, name and current price, and the whole card links to the product page. Prices come from your store live, so they are always correct and never need updating here. A hotspot pointing at a custom URL simply opens that link. ## Plan availability Creating and editing hotspots is available on the **Advanced** and **Premium** plans. Hotspots you have already created keep working and stay visible to shoppers on any plan, and you can still remove them. ## Granting product access The first time you link a hotspot to a product, the app may ask for permission to read your products. This is what lets the product search show your catalogue. Click **Grant access** and approve the prompt. Until it is granted, the product search comes up empty. Custom URL hotspots work regardless, so you can always link to a product page by its address instead. --- # Customizing the Block in Your Theme > Adjust spacing, captions, and other display options Source: https://help.pasilobus.com/image-gallery/customizing-the-block App: Image Gallery (on the Shopify App Store as "Pasilobus Image Gallery") Shopify App Store: https://apps.shopify.com/image-gallery-1 App help: https://help.pasilobus.com/image-gallery Section: Features Last updated: 2026-08-24 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) A gallery brings its own layout, images per row, and image order with it — those live in the app. The theme block adds the settings that depend on where the gallery sits in your design: spacing, captions, the lightbox, and the shape of Grid tiles. That split lets the same gallery feel different on different pages without touching the gallery itself. ## Where the Settings Live Block settings are in the Shopify theme editor, not the app: - **Open Online Store > Themes > Customize**. - **Navigate to the page** where you added the Image Gallery block (Home, a Product page, a custom page, etc.). - **Click the Image Gallery block** in the sections list on the left. - **Settings panel** opens on the right — every change previews live. There is no Layout setting here. Layout, images per row on desktop and mobile, image order, and Mosaic tile sizes are all set on the gallery's page in the app, so the block can never disagree with the preview you approved there. ## Settings Reference - **Gallery ID** - The unique ID of the gallery you want to show (for example, `gal_abc123`). Copy it from the **Install to Theme** screen, or from the Installation page in the app. Switching the ID swaps which gallery this block displays without touching anything else. - **Grid tile shape** - Square (1:1), Portrait (3:4), Landscape (4:3), or Original ratio. Only applies when the gallery's layout is Grid. - **Images per row** - Leave on **App setting (recommended)** so the block uses the desktop and mobile counts you set on the gallery. Picking a number here overrides the gallery for this block only, and that fixed number then applies on phones too — so use it only when one specific page needs a specific count. - **Gap (px)** - The space between images, from 0 to 32 pixels. Lower for a tight magazine feel, higher for an airy look. - **Carousel height** - **Adapt to image (recommended)** keeps each image's own proportions so nothing is cropped; the strip is as tall as the tallest slide. **Fixed height** crops or letterboxes every slide to one height instead. Only applies to the Carousel layout. - **Carousel height (px)** - The height used when you choose Fixed height, from 200 to 800 pixels. - **Image fit** - Also only for Fixed height. Choose **Fill (crop to fit)** so images fill the whole height (some cropping), or **Fit (original ratio)** so the whole image is visible with empty space around it. - **Enable lightbox on click** - On by default. When on, visitors can click any image to open a full-screen lightbox. - **Lightbox background** - Dark or Light. Only shows when the lightbox is enabled. - **Image titles** - Choose **Hidden**, **Show on hover**, or **Show below image** to control how each image's title appears. - **Image descriptions** - The same three options for the image's description. Titles and descriptions are written per image in the app, and each can be shown, hidden, or placed independently. ## Tips for Different Use Cases - **Homepage hero** - Carousel, with the gallery set to 1 image per row and Carousel height left on Adapt to image. - **Product gallery** - Grid, Square tile shape, small gap. - **Editorial lookbook** - Masonry with titles shown below each image. - **Featured collection** - Collage with a gap of 4-8 px, so the hero tiles read as one composition. Block settings only affect the block you're editing, so adding the same gallery to another page lets you try different spacing or captions there without losing this one. --- # Installing a Gallery on a Page > Add a gallery to any page in your theme Source: https://help.pasilobus.com/image-gallery/installing-on-a-page App: Image Gallery (on the Shopify App Store as "Pasilobus Image Gallery") Shopify App Store: https://apps.shopify.com/image-gallery-1 App help: https://help.pasilobus.com/image-gallery Section: Features Last updated: 2026-08-24 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Installing a gallery on a page is a two-step flow: copy the Gallery ID from the app, then open the theme editor where the Image Gallery block is ready to drop in. The whole thing usually takes under a minute, and you can put the same gallery on as many pages as you like. The look of the gallery travels with it — the block only needs the ID. ## The Two Steps From any gallery's page in the app: - **Click Install to Theme** - This opens the install screen. - **Pick a theme and copy the Gallery ID** - Choose the theme you want to install into (your live theme is marked "current"), then click the copy icon next to the Gallery ID. The ID is copied to your clipboard. - **Click Open theme editor** - The theme editor opens in a new tab with the Image Gallery block pre-loaded and ready to add. - **Add the block to a section** - Drop it into the section where you want the gallery to appear (any page works — home, product, custom pages, collection pages). - **Paste the Gallery ID** - In the block's settings panel, paste your copied ID into the **Gallery ID** field. - **Save** - Click Save in the theme editor. The gallery is now live on your storefront. You don't pick a layout here. The gallery renders with the layout and images-per-row you set on its page in the app; the block's own settings cover spacing, captions, the lightbox, and Grid tile shape. ## Adding the Same Gallery to Multiple Pages You can use the same gallery on as many pages as you want: - **Repeat the install flow** for each page, or - **Add a second block** to a different page manually and paste the same Gallery ID into its settings. Both blocks stay in sync — update the gallery in the app (add images, change layout, reorder, adjust images per row) and every page using that Gallery ID picks up the change automatically. ## Swapping One Gallery for Another To change which gallery a block shows, you don't need to remove and re-add the block: - **Open the theme editor** and click the Image Gallery block. - **Replace the Gallery ID** in the settings field with a different gallery's ID (copy it from that gallery's Install to Theme screen, or from the Installation page in the app). - **Save** - The block now shows the new gallery, in that gallery's own layout, with this block's spacing and caption settings unchanged. ## Tips - **Install on a dev or unpublished theme first** if you want to preview before going live. The theme picker on the install screen lets you target any theme on your store. - **Use the Installation page** in the app to see every gallery next to its ID in one list — handy when you're installing several at once. - **Pin the app** to your admin sidebar so you can find a Gallery ID quickly when you need it again. --- # Deleting Galleries and Images > Remove galleries and clean up unused images Source: https://help.pasilobus.com/image-gallery/deleting-galleries-and-images App: Image Gallery (on the Shopify App Store as "Pasilobus Image Gallery") Shopify App Store: https://apps.shopify.com/image-gallery-1 App help: https://help.pasilobus.com/image-gallery Section: Features Last updated: 2026-08-24 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Cleaning up galleries and images is straightforward, but because images are shared across galleries, it's worth understanding what stays and what goes. The app is conservative by default: deleting a gallery doesn't delete images that other galleries are using, so you can't accidentally break a different gallery. ## Deleting a Gallery To remove a gallery you no longer need: - **Open the gallery** from the **Galleries** list. - **Click Delete** in the top right. - **Confirm the action** - You'll see a confirmation dialog explaining what will happen. - **Images shared with other galleries are kept** - Only images used solely in the deleted gallery are removed. Any image still in another gallery stays in your library. - **Any pages using this gallery's ID will go empty** - The blocks remain in your theme, but they'll show nothing until you change the Gallery ID to a different gallery (or remove the blocks). ## Removing an Image from One Gallery If you want to take an image out of a gallery without deleting it from your library: - **Open the gallery**. - **Hover over the image** - Two icons appear in the top-right corner of the tile: edit and remove. - **Click the remove icon** - The image leaves this gallery straight away, no Save needed. It stays in your library and in any other gallery that uses it. This is the right action when you're swapping content out of a gallery — for example, retiring a seasonal photo from your homepage gallery but keeping it available for a future "Throwback" gallery. ## Bulk Deleting Images from Your Library To permanently delete one or more images from your entire library: - **Open the image library** - Click the **Images** tile on the dashboard. - **Select images** - Tap the images you want to delete (or use a select-all option if you're cleaning out a lot at once). - **Click Delete** - The selected images are permanently removed from every gallery they appeared in. - **Storage is freed up** immediately, so you can upload new images right away. Use bulk delete when you're cleaning out old uploads — leftover test images, retired campaigns, products that are no longer in your catalogue. ## What Happens to Storefront Pages When you delete images that are used on the storefront: - **The block stays in your theme** but renders fewer images (or an empty gallery if you deleted them all). - **Visitors won't see error messages** — the block simply skips images that no longer exist. - **Hard-refresh your storefront** to confirm the change took effect (browsers often cache images aggressively). If a gallery is empty after deletion, the block won't display anything on the storefront. You can either delete the block from your theme or add fresh images to the gallery in the app. --- # Working with Sidekick > Ask Shopify's assistant about your galleries Source: https://help.pasilobus.com/image-gallery/sidekick App: Image Gallery (on the Shopify App Store as "Pasilobus Image Gallery") Shopify App Store: https://apps.shopify.com/image-gallery-1 App help: https://help.pasilobus.com/image-gallery Section: Features Last updated: 2026-08-24 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Sidekick is Shopify's built-in assistant, available from anywhere in your admin. Image Gallery connects to it, so you can ask how something in the app works, or ask about the galleries you've already built, without leaving the page you're on. There is nothing to switch on — the connection ships with the app and works as soon as it's installed. ## What You Can Ask Sidekick can do two things with Image Gallery: - **Answer how-to and troubleshooting questions** - It searches this help centre and answers from the article, citing it so you can read the rest. Try "How do I add a gallery to a product page?" or "Why isn't my gallery showing up on my storefront?" - **Report what you've built** - How many galleries you have, how many images are in your library, and for any gallery its image count, layout, and images per row on desktop and mobile. Try "How many galleries do I have?" or "Which layout is my Lookbook gallery using?" When you ask about a specific gallery, Sidekick can offer a link that opens that gallery's page in the app. ## Creating a Gallery Ask Sidekick to create an image gallery — "create a lookbook gallery", "make me a spring campaign gallery" — and it opens the app's new-gallery form for you, pre-filled with a title, layout and images per row. Nothing is saved until you press **Create**, so you can change anything first. ## What It Cannot Do Beyond starting a new gallery, Sidekick only reads. It can tell you that a gallery uses the Mosaic layout with 4 images per row, but it cannot change the layout, add images, reorder them, or delete anything. Those changes happen on the gallery page in the app, where you can see the result against your own images before saving. If Sidekick offers to make a change for you, it's doing it through another part of Shopify, not through Image Gallery. ## Finding Sidekick - **Look for the assistant icon** in your Shopify admin — it's available throughout the admin, not only inside the app. - **Open the app's Sidekick page** at **Settings > Sidekick** for a reminder of what to ask, with example questions you can copy. - **Ask in your own words** - You don't need special phrasing or command syntax. ## Privacy Sidekick only ever sees the galleries and images belonging to the store you're logged into. Questions from one store can never return another store's data. --- # Translations > Translate the app interface into multiple languages Source: https://help.pasilobus.com/image-gallery/translations App: Image Gallery (on the Shopify App Store as "Pasilobus Image Gallery") Shopify App Store: https://apps.shopify.com/image-gallery-1 App help: https://help.pasilobus.com/image-gallery Section: Features Last updated: 2026-08-24 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Translations let you change the labels and text inside the Image Gallery admin to a language other than English. They apply to what you and your team see while managing galleries — they don't change anything on your storefront, because gallery images and the theme block use whatever language your Shopify theme is configured for. ## Where Translations Apply - **Inside the app admin** - Buttons, labels, error messages, and help text in the merchant interface. - **Not on your storefront** - The theme block uses your theme's locale. Image titles, alt text, and any storefront-facing text live in your theme's settings or are edited per-image in the app. ## Switching Your Admin Language The app follows your Shopify admin's language preference automatically: - **Open your Shopify admin language settings** - In Shopify admin, click your name in the top right, then **Manage account > Language**. - **Pick a language** - Image Gallery will display in the chosen language the next time you reload the app. If your language isn't listed yet, the app falls back to English. Get in touch if you'd like to see a language added. ## Translating Image Titles and Alt Text Image titles and alt text are stored per image in your library. If you sell in multiple markets and want different text for different storefront languages, the best approach is: - **Use Shopify Markets** to set up storefront localization. - **Use the Translate & Adapt app** (or a similar Shopify-native translation tool) to translate image alt text and titles into market-specific languages. Image Gallery doesn't currently offer per-language image text on the storefront — the title and alt text you save in the app are what's shown to all visitors. ## Plan Requirements Admin translations are available on all paid plans. See the **Plans** page in the app for the latest details. --- # Theme Block and Gallery ID Reference > How the Image Gallery theme block works Source: https://help.pasilobus.com/image-gallery/theme-block-reference App: Image Gallery (on the Shopify App Store as "Pasilobus Image Gallery") Shopify App Store: https://apps.shopify.com/image-gallery-1 App help: https://help.pasilobus.com/image-gallery Section: For Developers Last updated: 2026-08-24 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Image Gallery ships as a single theme app block. It's installed automatically when the app is added to a store but doesn't render anywhere until you add the block to a section through the theme editor. This article covers the block's settings and how it connects to your galleries — useful when you're building custom theme sections or templates that include an Image Gallery. ## How the Block Renders The block reads two pieces of metadata the app exposes on the storefront: - **Image data** - The full list of images you've uploaded, with URLs, dimensions, titles, descriptions, and alt text. - **Gallery order** - A mapping from Gallery ID to that gallery's image order, layout, desktop and mobile images-per-row, and per-image Mosaic tile sizes. When a block renders, it looks up the gallery by its Gallery ID, takes the matching images in the stored order, and applies the gallery's layout. All CSS is scoped to the block instance (via a unique class derived from the block's ID), so adding multiple blocks to one page never causes style conflicts. Very large galleries are served differently: past roughly half a megabyte of image data the block renders a stub and hydrates it from the app's JSON endpoint instead of the metafield, producing the same markup and the same layouts. This is automatic and needs no configuration. ## The Gallery ID Every gallery has a unique Gallery ID in the format `gal_abc123`. You'll find it: - **On the Install to Theme screen** for that gallery, with a one-click copy button. - **On the Installation page** in the app, which lists every gallery next to its ID. The Gallery ID is the only required block setting. Without it, the block renders nothing on the storefront and shows a placeholder in the theme editor. Pasted IDs are stripped of stray whitespace, including non-breaking and zero-width characters picked up from rich-text sources. ## What the Block Does Not Control Layout, image order, images per row (desktop and mobile), and Mosaic tile sizes are properties of the gallery and are set in the app. There is no layout override in the theme editor, so the admin canvas and the storefront cannot disagree. ## Block Settings - **Gallery ID** (text) - The prefixed ID of the gallery to render. - **Grid tile shape** (select) - `Square (1:1)`, `Portrait (3:4)`, `Landscape (4:3)`, or `Original ratio`. Applies to the Grid layout only. - **Images per row** (select) - `App setting (recommended)` or a fixed `2`-`6`. On the app setting, desktop uses the gallery's desktop count and viewports below 750 px use its mobile count. A fixed number applies at every width. - **Gap (px)** (range, 0-32) - Spacing between images. - **Carousel height** (select) - `Adapt to image (recommended)` leaves slides unconstrained so each keeps its natural ratio; `Fixed height` pins every slide to one height. - **Carousel height (px)** (range, 200-800) - Shown only when Carousel height is `Fixed height`. - **Image fit** (select) - `Fill (crop to fit)` or `Fit (original ratio)`. Shown only when Carousel height is `Fixed height`. - **Enable lightbox on click** (checkbox) - Default on. - **Lightbox background** (select) - `Dark` or `Light`. Shown only when the lightbox is enabled. - **Image titles** (select) - `Hidden`, `Show on hover`, or `Show below image`. - **Image descriptions** (select) - The same three options, applied to the image's description. ## Layout Behaviour on the Storefront - **Grid** - `grid-template-columns: repeat(N, 1fr)` with the tile aspect ratio from Grid tile shape; `Original ratio` drops the ratio and doesn't crop. - **Masonry** - The same column count, with row spans computed in JavaScript from each image's natural ratio once it loads. - **Mosaic** - Dense grid flow with `large` (2x2), `wide` (2x1), and `tall` (1x2) spans. A tile uses its stored size when one is set; otherwise a built-in repeating pattern applies, keeping roughly half the tiles non-square and drifting the featured tiles across columns at any column count. - **Collage** - Dense grid flow with every 8th tile (the 1st, 9th, 17th, …) promoted to a 2x2 hero. - **Carousel** - A flex track showing N slides at once, translating by one slide per arrow click and wrapping at both ends. Below 750 px, Grid, Masonry, Mosaic, Collage, and the Carousel track all switch to the gallery's mobile images-per-row. ## Adding the Block to a Custom Section or Template The block has `"target": "section"`, so it can be added inside any section that accepts blocks: - **Open the theme editor** and navigate to the page or template you're building. - **Click Add block** inside any compatible section. - **Choose Image Gallery from the Apps category**. - **Paste a Gallery ID** in the block settings. The deeplink format used by the **Install to Theme** button is: ``` /admin/themes/{theme_id}/editor?template=index&addAppBlockId={extension_uuid}/{block_handle}&target=mainSection ``` The app rewrites this with the merchant's selected theme ID and copies the Gallery ID to the clipboard so it can be pasted once the editor loads. You can construct the same URL manually to scaffold installs on specific theme templates. ## Multiple Blocks per Page You can add the Image Gallery block to a page as many times as you like. Each instance reads its own Gallery ID, so you can show different galleries side by side, each with its own spacing and caption settings. Styles are scoped per block, so one block's settings never bleed into another. Two blocks pointed at the same gallery always render the same layout — it belongs to the gallery, not the block. --- # Block Doesn't Show on Page > Fix an empty or invisible gallery block Source: https://help.pasilobus.com/image-gallery/block-not-showing App: Image Gallery (on the Shopify App Store as "Pasilobus Image Gallery") Shopify App Store: https://apps.shopify.com/image-gallery-1 App help: https://help.pasilobus.com/image-gallery Section: Troubleshooting Last updated: 2026-08-24 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) If you've added the Image Gallery block to a page but nothing appears on your storefront, the cause is almost always one of a handful of small mistakes. The block is designed to fail quietly on the storefront (no error banners or broken layouts) which is great for visitors but can make troubleshooting feel like guesswork. Here's a checklist to run through. ## Check the Gallery ID By far the most common cause is a missing or mistyped Gallery ID: - **Open the theme editor** and click the Image Gallery block. - **Look at the Gallery ID setting** - It should look like `gal_abc123`. If it's empty, paste in your Gallery ID and save. - **Copy fresh from the app** - Open the gallery, click **Install to Theme**, and use the copy button next to the Gallery ID (the Installation page lists every gallery's ID too). Pasting a fresh copy rules out typos. - **Make sure the ID matches a real gallery** - If you've deleted the gallery, the block will show nothing. ## Check You Have Images in the Gallery A gallery with no images won't render anything on the storefront: - **Open the gallery in the app**. - **Verify there's at least one image** - If the gallery is empty, upload a few images, pick them from your library, or import a collection. - **Click Save** after adding images - Newly dropped or picked images sit on the canvas unsaved until you use the save bar or the Save button, and unsaved images never reach the storefront. ## Check the Block Was Saved in the Theme Editor Adding a block isn't enough — the theme editor has to save the change: - **Open the theme editor** and look at the top right for the **Save** button. - **If it's highlighted**, you have unsaved changes. Click Save. - **Reload your storefront** with a hard refresh (Cmd+Shift+R on Mac, Ctrl+Shift+R on Windows). ## Check the Right Theme If you have multiple themes (live, drafts, previews), the block has to be in the live theme to appear on your public storefront: - **Go to Online Store > Themes** in your admin. - **Note which theme is marked "Current theme"** — that's your live theme. - **Make sure the Image Gallery block is in that theme**, not in a draft. When you click **Install to Theme** in the app, the theme picker shows which one is "current" so you can target the right one. ## Check the Theme Editor Preview The theme editor itself shows a helpful placeholder when something is missing: - **Empty gallery ID** - Shows "Enter a Gallery ID in the block settings." - **No images found** - Shows "Add images in the app." If you see either message in the editor, fix the issue there and save. ## Still Not Working If everything above checks out and the gallery still doesn't show, try: - **A hard refresh in an incognito window** - This rules out browser cache. - **Checking another page** with the same block - Helps you tell if the issue is global or page-specific. - **Removing and re-adding the block** - As a last resort, delete the block, save the theme, then add it back with a fresh Gallery ID. --- # Images Aren't Loading > Fix broken or missing images Source: https://help.pasilobus.com/image-gallery/images-not-loading App: Image Gallery (on the Shopify App Store as "Pasilobus Image Gallery") Shopify App Store: https://apps.shopify.com/image-gallery-1 App help: https://help.pasilobus.com/image-gallery Section: Troubleshooting Last updated: 2026-08-24 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) If your gallery is rendering but the images themselves appear broken, slow, or missing, the issue is usually one of three things: a temporary processing delay, a browser cache, or a storage limit. Each one has a quick fix. ## Slow First Load When you upload a new image, the app processes it in the background to generate optimized versions for the storefront. For a few seconds after upload, the image may take longer to appear: - **Wait 10-30 seconds** after uploading before checking the storefront. - **Refresh the page** - The processed image should now load quickly. - **Subsequent loads are fast** - Once processed and cached, images load just as quickly as any other Shopify image. ## Browser Cache If you replaced or re-uploaded an image but your browser is showing the old one: - **Hard refresh your storefront** - Cmd+Shift+R on Mac, Ctrl+Shift+R on Windows. This bypasses your browser's cache. - **Open the page in an incognito or private window** - No cache at all, so you see exactly what new visitors see. - **Wait a few minutes** for CDN caching to refresh if a hard refresh doesn't help. ## Storage Limit Reached If new uploads are failing or images are missing, check your storage: - **Open any gallery in the app** - The storage remaining indicator is shown above the upload zone. - **If you're at the limit**, delete unused images from your library to free up space, or upgrade your plan. - **Compress large images** before uploading - Most photos look great at 1200-1600 px wide and use much less storage than full-resolution camera files. ## Images Deleted from the Library If an image was deleted from your library (rather than just removed from a single gallery), it's gone everywhere it was used. The gallery will simply skip those images on the storefront: - **Open the gallery** in the app to check whether the expected images are still there. - **If images are missing**, re-upload them or pick replacements from the library. ## Image Doesn't Look Right (Cropping, Aspect Ratio) If the image loads but looks cropped or stretched in a way you didn't expect: - **Grid crops to the shape you chose** - Set **Grid tile shape** in the block settings to Square, Portrait, Landscape, or **Original ratio**. Original ratio is the one that doesn't crop at all. - **Mosaic and Collage crop to fill their tiles** - Both use fixed tile shapes so the pattern holds together, so images are cropped to fit. This is by design. - **Masonry preserves the natural aspect ratio** - No cropping. Switch the gallery to Masonry if you want every image's full proportions to show. - **Carousel** - **Carousel height** is on **Adapt to image** by default, which never crops. If your carousel is cropping, the block is set to **Fixed height**: either switch back to Adapt to image, or set **Image fit** to `Fit (original ratio)`. Layout is set on the gallery page in the app; Grid tile shape, Carousel height, and Image fit are block settings in the theme editor. --- # Layout Looks Wrong > Fix unexpected gallery appearance Source: https://help.pasilobus.com/image-gallery/layout-looks-wrong App: Image Gallery (on the Shopify App Store as "Pasilobus Image Gallery") Shopify App Store: https://apps.shopify.com/image-gallery-1 App help: https://help.pasilobus.com/image-gallery Section: Troubleshooting Last updated: 2026-08-24 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) If your gallery looks different from what you expected — wrong layout, fewer images per row, odd heights — the cause is usually a setting sitting somewhere you didn't look, or a quirk of how a specific layout behaves by design. Here's what to check, and where each thing actually lives. ## The Layout Isn't the One You Picked Layout is set on the gallery in the app, not in the theme editor, so the storefront should always match the canvas you see there: - **Open the gallery** in the app and check the **Layout** dropdown in the gallery settings card. - **Make sure it's saved** - If a save bar is still showing at the top of the page, the change hasn't been applied yet. Click Save. - **Check you're looking at the right gallery** - Open the theme editor, click the block, and confirm the **Gallery ID** matches the gallery you edited. Two similar galleries are the most common cause of a "wrong" layout. - **Hard-refresh the storefront** after saving (Cmd+Shift+R or Ctrl+Shift+R). Older versions of the app had a Layout setting on the theme block. It has been removed — if you're following an old note or screenshot that mentions it, the gallery page in the app is where to go now. ## Fewer or More Images per Row Than Expected Images per row is also a gallery setting, with separate desktop and mobile values: - **Open the gallery** and use the **Desktop / Mobile** toggle in the top right of the settings card. - **Desktop** covers screens 750 px and wider, and accepts 2 to 6. - **Mobile** covers narrower screens, accepts 1 to 4, and previews on a phone-width canvas so you can judge it honestly. - **Check the block isn't overriding it** - In the theme editor, **Images per row** should be on **App setting (recommended)**. A fixed number there wins for that block, and applies on phones as well as desktops. ## Rows Don't Line Up, or Some Tiles Are Bigger This is by design in three of the layouts, and the app shows a note under Images per row explaining it for whichever layout you've selected: - **Masonry** - Columns are straight, rows are not. Each image keeps its own height, so images per row is a column count. - **Mosaic** - Tiles vary in size on purpose; roughly half come out non-square. Rows containing a tile that spans two columns fit fewer images. Hover any image and click the size badge to force that tile to auto, large, wide, or tall. - **Collage** - Every 8th image becomes a large tile spanning two columns and two rows, so those rows fit fewer images. - **If you want strictly uniform tiles**, use Grid, and set the tile shape with **Grid tile shape** in the block settings. ## Mosaic Tile Sizes Don't Do Anything Tile sizes apply only to the Mosaic layout: - **The size badge is hidden** on the canvas in Grid, Masonry, Collage, and Carousel, because the value would change nothing there. - **Your sizes aren't lost** - Switch the gallery back to Mosaic and every size you set reappears. ## Masonry Looks Jumbled at First, Then Settles The Masonry layout calculates each tile's height after the images load, so for the first half-second you may see tiles at default heights before they snap into position: - **This is normal** - Once images finish loading, the layout settles automatically. - **If it never settles**, hard-refresh the page (Cmd+Shift+R or Ctrl+Shift+R). - **For galleries with very large images**, the wait can be a second or two on slow connections. Compress your images for faster load times. ## Carousel Height or Slide Count Looks Off The carousel shows as many slides as the gallery's images-per-row setting, and each arrow click advances by one image: - **For a classic one-at-a-time slideshow**, set the gallery's Images per row to 1. - **Carousel height** in the block settings is **Adapt to image** by default, which keeps each image's own proportions and never crops. The strip is as tall as its tallest slide. - **Switch to Fixed height** if you want every slide the same height, then set **Carousel height (px)** between 200 and 800 and choose **Image fit**: Fill crops to the height, Fit shows the whole image with space around it. ## Spacing Between Images Is Too Tight or Too Loose - **Open the block in the theme editor** and find the **Gap (px)** setting. - **Range is 0-32** - Larger values for an airy, magazine feel; smaller for a tight, modern look. - **Save** and check on both desktop and mobile. ## Theme CSS Is Overriding the Gallery Some themes apply aggressive styling to images and grids that can affect how the gallery renders: - **All gallery styles are scoped to the block** so they shouldn't bleed into your theme — but the reverse can happen (your theme styling images globally). - **If you suspect this**, open the gallery on your storefront, right-click an image, and **Inspect** to see what styles are applying. - **Contact your theme developer or our support** if you find specific theme rules causing issues. Most can be resolved with a small tweak. --- # Installation > Install and activate Multi Ship on your Shopify store Source: https://help.pasilobus.com/multi-ship/installation App: MultiShip Address Checkout Shopify App Store: https://apps.shopify.com/multi-ship-pasilobus App help: https://help.pasilobus.com/multi-ship Section: Getting Started Last updated: 2026-08-31 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Multi Ship lets your customers ship items to multiple addresses in a single checkout. After installing, you will enable the app on your storefront so customers can see the split shipping option on your cart page. ## Install from the Shopify App Store Click "Add app" on the Multi Ship listing and approve the installation. You will be redirected to the app inside your Shopify admin. ## Setup guide On first launch, the dashboard shows a short setup guide. Pick the theme you want the app on, then follow the activation step — it opens your theme editor with Multi Ship's app embed ready to enable. The app embed is what places the split shipping option on your cart page. ## Enable the app embed In the theme editor, toggle Multi Ship on and click **Save**. Without this step, nothing will appear on your storefront. ## Setup completes automatically There is no confirmation button to remember. The app checks your theme and marks setup complete on its own once the embed is active. If you want to finish later, you can dismiss the guide — it comes back after a while unless setup completed in the meantime, and the rest of the app works in the meantime: you can split existing orders and create MultiShip orders from the admin before the storefront piece is enabled. ## What happens next With the embed enabled, customers shopping on your store will see a split shipping option on the cart page whenever they have two or more items. You can further customize the experience from **Settings** inside the app, including display mode, accent color, gift notes, and translations. If you switch themes later, revisit the app to re-enable the embed on your new theme. --- # How It Works > Understand how Multi Ship splits orders into separate shipments Source: https://help.pasilobus.com/multi-ship/how-it-works App: MultiShip Address Checkout Shopify App Store: https://apps.shopify.com/multi-ship-pasilobus App help: https://help.pasilobus.com/multi-ship Section: Getting Started Last updated: 2026-08-31 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Multi Ship adds a split shipping option to your cart page so customers can send items to different addresses in a single order. Everything happens in one checkout — no need for separate transactions. ## The Customer Experience When a customer has two or more items in their cart, a **"Ship to Multiple Addresses"** checkbox appears above the checkout button. Checking it opens a guided 3-step flow. The customer's progress is saved as they go, so they can leave the cart and come back without losing their addresses or the tick in the box. **Step 1 — Select Addresses** The customer adds the shipping addresses they want to use. Logged-in customers see their saved addresses, guests can enter new ones, and anyone can import a list of addresses from a CSV file. You choose the maximum number of addresses per order in settings, up to 150. **Step 2 — Assign Items** The customer assigns each item in their cart to one of the selected addresses. They can split quantities across addresses — for example, sending 2 of an item to one address and 1 to another. **Step 3 — Review & Ship** The customer reviews each shipment, selects a shipping method per address, and can optionally add gift notes or delivery instructions. Shipping rates are calculated separately for each destination. After clicking **Proceed to Checkout**, the customer completes payment through Shopify's standard checkout in a single transaction. **Large orders.** When an order is too big for the standard cart checkout, Multi Ship prepares the whole order for the customer and takes them to a secure Shopify payment page for it. That happens above 20 checkout lines (one per address in bundle mode, one per item per address in individual mode) or above 30 addresses. The customer sees a progress bar while the order is prepared. Everything else is the same: one payment, and after it the order is split into one shipment per address. ## What Happens After Payment Once the order is paid, Multi Ship automatically: 1. Confirms the order is fully paid, at the prices Multi Ship calculated for the checkout. If it isn't, the order is held for you to review instead of being split. 2. Splits the order into separate **child orders** — one per shipping address 3. Each child order contains only the items assigned to that address 4. Marks the original parent order fulfilled (it ships nothing itself) and archives it in Shopify once every child order exists If Shopify is briefly unable to create a child order (for example on a very large order), Multi Ship keeps retrying it automatically. The order shows as **Needs attention** until every child order exists. ## What You See as a Merchant - **Shopify Admin** — The child orders appear as regular orders that you can fulfill independently, each with its own shipping address - **Multi Ship Dashboard** — Shows all split orders with fulfillment status, timeline events, and shipment details - **Order Detail** — Click any order to see items, shipping address, gift notes, and a timeline tracking creation through fulfillment You fulfill each child order just like any normal Shopify order — pick, pack, and ship. --- # Plans & Pricing > What each plan includes and how per-destination pricing works Source: https://help.pasilobus.com/multi-ship/plans-and-pricing App: MultiShip Address Checkout Shopify App Store: https://apps.shopify.com/multi-ship-pasilobus App help: https://help.pasilobus.com/multi-ship Section: Getting Started Last updated: 2026-08-31 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Multi Ship charges per destination: every address an order ships to counts as one destination. Every plan includes the full multi-address checkout; plans differ by monthly price, how many destinations are included, and the price of each destination beyond that. Max and up also add three merchant tools. ## Plans - **Free** — no monthly fee, 50¢ per destination. - **Pro** — $4.99/month. 50 destinations included each month, then 30¢ per destination. - **Max** — $14.99/month. 100 destinations included, then 15¢ per destination. - **Max 3x** — $49.99/month. 300 destinations included, then 10¢ per destination. - **Max 10x** — $99.99/month. 1,000 destinations included, then 5¢ per destination. - **Ultra** — $249.99/month. 5,000 destinations included, then 2¢ per destination. Not sure which fits? On the **Plans** page, type how many destinations you ship to in a month: every plan shows its estimated monthly cost, and the cheapest one for you is marked. If you subscribed before November 2026 you may see the earlier names on your Shopify invoice: Pay As You Go is Free, Starter is Pro, Growth is Max, Advanced is Max 3x, Business is Max 10x and Enterprise is Ultra. Your price and plan don't change. ## Included on every plan - **Multi-address checkout** — customers ship one order to many addresses in a single payment - **Automated shipping rates** — live rates from your store's shipping settings, per destination - **Automated tax calculation** — sales tax computed per destination address - **Address autocomplete** — plus saved addresses for logged-in customers and CSV address import - **Order builder and manual splits** — build an order for a customer, or split an existing order from its order page - **Gift notes, delivery instructions and delivery dates** - **Shopify Flow triggers and Sidekick** ## Included on Max and above - **Per-shipment handling fee** — add a fee of your choosing to each destination's shipping cost - **Shipping rules** — hide specific rates from split shipments, for example any rate whose name contains "Express" or any rate below a price you set, and block destinations you don't deliver to, with your own message to the customer - **Delivery date pricing** — change the shipping price by the delivery date the customer picks ## How destinations are counted Each per-address order Multi Ship creates is one destination, whichever way the order was split: at checkout, by a manual split in the app, or from the order builder (one combined invoice or one invoice per address). An order shipped to 3 addresses uses 3 destinations. Orders paid with Shopify's test gateway (Bogus Gateway or a test payment provider) are never counted. Included destinations reset at the start of each billing month, and usage charges appear on your regular Shopify bill. Every plan has a monthly usage limit, so charges can never run away unexpectedly. When you reach it, Multi Ship asks you to approve a higher one (see **Monthly usage limit**). On the **Plans** page the estimate is each plan's full cost at your volume. A plan whose monthly usage limit your volume would go over is marked as such and is never recommended as cheapest. ## Changing plans You can upgrade or downgrade anytime from the **Plans** page inside the app. If you downgrade below Max, the handling fee, shipping rules and delivery date pricing simply stop applying — nothing breaks, and your settings are kept in case you upgrade again. --- # Monthly usage limit > What happens when your destinations reach your plan's monthly usage limit, and how to raise it Source: https://help.pasilobus.com/multi-ship/usage-limit App: MultiShip Address Checkout Shopify App Store: https://apps.shopify.com/multi-ship-pasilobus App help: https://help.pasilobus.com/multi-ship Section: Getting Started Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Every plan's per-destination charges have a monthly usage limit: the most Multi Ship can bill for destinations in one 30-day billing cycle. It keeps charges from running away unexpectedly, and you can raise it whenever your volume grows. Raising it changes only that maximum: you're still billed per destination you ship to. ## Before you reach the limit When this cycle's destination charges reach **80%** of your limit, the Multi Ship dashboard shows a warning and the store owner gets one email ("You've used $80.00 of your $100.00 monthly usage limit"). Nothing changes yet: orders keep splitting as usual. ## When you reach the limit Once the next destination would go over the limit, Multi Ship asks Shopify for a higher one (usually twice your current limit, or more if this cycle's volume needs it) and shows **Approve new limit** on the dashboard, the Orders page and the split editor. The store owner also gets an email. - **Approve new limit** opens Shopify's approval page. Approve it there and you're done. - For the next **48 hours** orders keep splitting normally while you decide. The destinations shipped in that time are billed once you approve the new limit. ## If the new limit isn't approved in 48 hours New splits pause until you approve: - Paid multi-address checkout orders are **held, not lost**. They show **Needs attention** in Multi Ship, and each one's history says it's waiting for the new limit. - Manual splits and the order builder show a message asking you to approve the new limit first. - The store owner gets an email: "Approve the new limit to resume splitting". As soon as you approve, Multi Ship splits every held order and bills the destinations that were waiting, all within the same billing cycle. ## A new billing cycle The limit applies per 30-day billing cycle. A higher limit you approved stays on your subscription until you change plans, when the new plan starts from its own limit. You can see your plan's limits on the **Plans** page; see [Plans & Pricing](https://help.pasilobus.com/multi-ship/plans-and-pricing). --- # Shipping Settings > Configure shipping calculation, free shipping rules, and the per-destination handling fee Source: https://help.pasilobus.com/multi-ship/shipping-settings App: MultiShip Address Checkout Shopify App Store: https://apps.shopify.com/multi-ship-pasilobus App help: https://help.pasilobus.com/multi-ship Section: Features Last updated: 2026-08-31 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Multi Ship calculates shipping rates separately for each address in a split order. You can configure how shipping costs are presented to customers and set up free shipping rules. ## How rates are fetched When a customer assigns items to addresses, Multi Ship requests shipping rates from Shopify for each address individually. The rates shown are based on your existing Shopify shipping zones and profiles. You do not need to configure shipping separately in the app. ## Free shipping threshold In **Settings > Shipping rates**, you can set a minimum cart total that qualifies for free shipping. When the customer's total meets or exceeds this amount, shipping is automatically free for all addresses. This works alongside any free shipping rules you already have in Shopify. ## Skip shipping step When free shipping applies to all addresses in a split order, you can enable **Skip shipping step** to bypass the shipping rate selection entirely. This streamlines the checkout flow for customers who qualify for free shipping. ## Where rates come from All shipping rates come from your store's own shipping settings — there is nothing to set up twice. The **Settings > Shipping rates** page links straight to your Shopify shipping settings, and any rate you add or change there applies to split shipments immediately. The page also lists your store's current rate names as a reference while you write rules. ## Shipping rules Available on the **Max** plan and above. Rules only take options away: they never add a shipping rate or change a price. Prices come from your Shopify shipping settings, adjusted by delivery date pricing if you use it. Sometimes a rate that makes sense for a regular order doesn't suit a split shipment, or there are destinations you simply don't deliver to. Rules let you handle that without touching your Shopify shipping settings. **Hide a shipping rate** from split shipments when: - **Rate name contains** — a word you choose, like "Express" - **Rate price is below** — an amount you set - **Rate price is above** — an amount you set **Block a destination** so customers can't ship there: - **Address contains** — a word or phrase in the street address, like "PO Box" - **City contains** — a city name For a blocked destination, the customer sees a message explaining that you can't ship to that address. You can write your own message for each blocking rule, or leave it blank to use the standard one. If you create a split order yourself in the admin for an address that matches a blocking rule, you see a warning but can still go ahead. You can add up to 20 rules. They apply at the moment rates are shown, so they always reflect your current store settings. If your hiding rules would remove every available rate for a destination, all rates are shown instead — a customer is never left without a shipping option. ## Multi-address-only rates Some stores create shipping rates only for multi-address orders, for example a per-address delivery rate. List their names under **Multi-address-only rates** (one per line) and Multi Ship hides any rate whose name contains one of them in your regular single-address checkout. Multi-address orders still offer them. This uses a Shopify delivery customization, which needs one more permission: Multi Ship asks for it in an update, and your list starts working once you approve it. ## Delivery date pricing Available on the **Max** plan and above. When the delivery date picker is on, you can make the shipping price follow the date the customer picks: add an amount on certain weekdays or dates, replace the Shopify rate with your own price, or close days entirely. It's set up on this page under **Delivery date pricing**. See **Delivery Date Pricing** for the full guide. ## Handling fee The handling fee is available on the **Max** plan and above. On the same page, you can add a **handling fee** that applies to each destination in a split order. When enabled, the fee is added on top of the shipping rate shown for every address — for example, a $0.50 fee on an order shipping to 3 addresses adds $1.50 to shipping. Customers pay it as part of shipping, so it isn't listed as a separate line on the order. - **Charge a handling fee** — turn the fee on, then set the amount charged per destination. - **Waive the fee when shipping is free** — skip the fee for any destination that already qualifies for free shipping. Once enabled, the fee is applied automatically every time an order is split — there's nothing else to set up. ## Important notes Shipping rates depend on your Shopify shipping zones being properly configured. If a customer enters an address outside your shipping zones, no rates will be available for that address. Make sure your shipping zones cover all regions where you want to offer split shipping. --- # Delivery Date Pricing > Change the shipping price based on the delivery date the customer picks Source: https://help.pasilobus.com/multi-ship/delivery-date-pricing App: MultiShip Address Checkout Shopify App Store: https://apps.shopify.com/multi-ship-pasilobus App help: https://help.pasilobus.com/multi-ship Section: Features Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Delivery date pricing lets the shipping price follow the date the customer picks in the calendar: charge more for Saturday delivery, less on quiet days, a fixed price over the holidays, or close specific days entirely. It works on top of your existing Shopify shipping rates, so there's nothing to set up twice. ## Turning it on Delivery date pricing is available on the **Max** plan and above. 1. Go to **Settings > Shipping rates** and find **Delivery date pricing**. 2. Tick **Price shipping by delivery date**. 3. Make sure the delivery date picker is on in **Settings > Orders & Checkout**. The rules only apply to dates customers choose in the calendar. ## Adding rules Click **Add rule** and fill in: - **Rule name** - names the rule in your list, for example "Saturday delivery". With the override on (see below), customers also see it at checkout as the shipping option's name. - **Applies to** - **Days of the week** (tick the days) or **Specific dates** (a from and to date; leave **To** empty for a single day). - **Price** - **Charge an amount**, then enter the amount, or **No delivery on these days** to close them. Click **Done** to close the rule, then **Save**. Saved rules show as a list with each rule's days or dates and its price; click **Edit** to change one or the bin icon to remove it. ## Which rule applies Each delivery date uses one rule: - A rule for **specific dates** wins over a **weekday** rule, so a holiday price overrides your usual Monday price. - If two rules of the same kind match, the one higher in your list wins. - Saturdays and Sundays stay closed in the calendar unless a rule prices them. - **No delivery on these days** closes a day, even a weekday. - Days without a rule use your normal Shopify rates. ## Adding to your Shopify rates or replacing them By default, a rule's amount is **added** to the Shopify rate for that address. With a standard Shopify rate of $4.99 and a Monday rule of $3.00, Monday delivery costs $7.99. Tick **Override Shopify rates with these values** to make the amount the **whole** shipping price instead: Monday then costs $3.00. Two things stay the same: - Days without a rule still use your Shopify rates. - The address still needs a Shopify shipping rate to exist. The override replaces its price, but it can't create shipping where your Shopify settings have none. ## Free shipping Which option you see depends on the override: - **Override off: Don't add the extra charge when shipping is free.** When your Shopify rates make an address's shipping free (for example free shipping over a set amount), it stays free on priced dates. Paid rates still get the extra amount. - **Override on: Free shipping when a destination's subtotal reaches.** An address whose items reach this amount ships free on priced dates. Each address is judged on its own items, before shipping and tax, after any discount code the customer applied. Leave it empty to always charge the rule's price. The **handling fee**, if you use one, is still added on top, including its **Waive the fee when shipping is free** option. ## What customers see The calendar shows each day's price under the date, for example **+$3** when the amount is added, **$12** with the override, or **Free** when the address qualifies for free shipping. After picking a date, the shipping options for that address update to the date's price. Multi Ship checks the price again when the customer goes to checkout, so what they pay always matches your rules. To make customers choose a date for every delivery, turn on **Require a delivery date** in **Settings > Orders & Checkout**. --- # Checkout Display Modes > Choose how split shipments appear at checkout Source: https://help.pasilobus.com/multi-ship/checkout-display App: MultiShip Address Checkout Shopify App Store: https://apps.shopify.com/multi-ship-pasilobus App help: https://help.pasilobus.com/multi-ship Section: Features Last updated: 2026-04-04 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) When a customer splits their cart across multiple addresses, Multi Ship needs to present those items at Shopify's checkout. The checkout display mode controls how split shipments appear on the checkout page. ## Bundle mode Items for each address are grouped into a single bundle line item at checkout. Instead of listing every product separately, the customer sees one entry per address, in address order (for example, "Shipment 1 of 2 to Jane Doe - Austin"), with that address's products named under it (for example, "Items: 2 × Snowboard, 1 × Hat"). This keeps the checkout page clean when orders have many items. ## Individual mode Each product appears as its own line item at checkout, just like a normal order. Items are labeled with their destination address so the customer can verify which items go where. This mode is more transparent and works best when customers want to see every product listed. ## When to use each mode Use **Bundle mode** if your customers tend to split large carts with many items, as it reduces visual clutter at checkout. Use **Individual mode** if your customers prefer to see each product listed separately, or if your products have variants that are important to verify before payment. Very large orders use a secure Shopify payment page instead of the cart checkout (see **How It Works**). That switch counts checkout lines: one per address in bundle mode, but one per item per address in individual mode. So individual mode reaches it sooner. ## Where to configure In both modes, every line at checkout shows the recipient's full address beneath it, so the customer can confirm where each item is going before paying. On very large orders the checkout may leave out product images to stay within Shopify's limits, but the addresses stay. Go to **Settings > Checkout** to choose between Bundle and Individual mode. The change takes effect immediately for new split shipping sessions. --- # Gift Notes & Delivery Instructions > Let customers add gift messages and delivery instructions per shipment Source: https://help.pasilobus.com/multi-ship/gift-notes-and-delivery App: MultiShip Address Checkout Shopify App Store: https://apps.shopify.com/multi-ship-pasilobus App help: https://help.pasilobus.com/multi-ship Section: Features Last updated: 2026-08-31 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Multi Ship lets customers add personal messages and delivery preferences to each shipment in a split order. This is especially useful for gift purchases where different items go to different recipients. ## Gift notes Enable gift notes in **Settings > Orders & Checkout** to let customers write a personal message for each shipment. During the review step of the split shipping modal, a text field appears for each address where customers can type their gift message. ## Delivery instructions Enable delivery instructions to let customers provide specific directions for each shipment, such as "Leave at the back door" or "Ring doorbell on arrival." This field appears alongside the gift note during the review step. ## Delivery date When enabled, customers pick a date for each shipment during the review step. This helps recipients plan for incoming packages, especially for time-sensitive gifts. The calendar only offers dates you can realistically meet: days that are too soon, weekends, and dates more than 60 days out are greyed out. If you use **delivery date pricing**, weekend days open when a rule prices them, days a rule closes are greyed out, and each day shows its shipping price under the date. The earliest date a customer can choose is worked out from: - **Your processing time** — the time you need to prepare an order, as set in your Shopify shipping settings - **The shipping option's transit time** — when a shipping option's name states it (for example "Standard (3-5 days)"), the longer figure is used; otherwise the **Default transit days** you set in the app applies - **Your order cut-off time** — orders placed after this time count as next-day orders, so processing starts the following business day All of these settings live in **Settings > Orders & Checkout**, in the delivery date section: - **What the customer picks** — choose between a **preferred delivery date** (the day the package should arrive) and a **ship date** (the day it should leave your warehouse). Ship date is the better fit when you can't promise delivery times, and it only needs your processing time. - **Order cut-off time** — optional; leave it off if you don't have one. - **Default transit days** — the transit time assumed for shipping options that don't state one. - **Require a delivery date** - optional. When on, customers must choose a date for every shipment before they can check out. - **Set the order's fulfillment deadline from the chosen date** — optional. When on, each shipment's order gets a **Fulfill by** date in Shopify. In delivery date mode that is the last day it can ship and still arrive on time; in ship date mode it is the chosen date itself. Orders past their deadline show as overdue in your Shopify orders list, so nothing slips. The chosen date is saved on the shipment's order as **Delivery Date** or **Ship Date**, depending on the mode. ## Recipient notifications When **Collect recipient email** is on, customers can enter an email address for each shipping address. What happens with it depends on **Add recipients as customers and send them shipping updates**: - **On** - The recipient is saved as a customer in your store (tagged `multiship-recipient`) and their shipment's order is assigned to them, so Shopify sends the shipping confirmation and tracking updates directly to the recipient. The recipient email becomes required. - **Off** - The email is stored on that shipment's order as a **Recipient Email** order attribute, alongside gift notes and delivery dates, for your own reference. Both settings live in **Settings > Order Information > Recipient notifications**. Turning notifications on for the first time asks you to approve an additional customer permission for the app. ## Where notes appear Gift notes, delivery instructions, and delivery or ship dates are attached to the corresponding child order in Shopify. You can see them on the order detail page in both the Multi Ship dashboard and your Shopify admin. This information is also visible when you prepare the shipment for fulfillment. By default, each child order's note holds the split details and the customer's delivery instructions, and the gift message is stored as a **Gift Note** order attribute. Some shipping apps, such as ShippingEasy, print the order note on the packing slip as the gift message. If you use one, turn on **Use the gift note as the order note** in **Settings > Orders & Checkout**, under Order splitting. The note then contains only the customer's gift message, and the split details and delivery instructions are kept as order attributes, where you can still see them on the order. ## Enabling these features All of these options are off by default. Toggle each one individually in **Settings > Orders & Checkout**. You can enable any combination depending on what makes sense for your store. --- # Translations > Customize text displayed to customers in any language Source: https://help.pasilobus.com/multi-ship/translations App: MultiShip Address Checkout Shopify App Store: https://apps.shopify.com/multi-ship-pasilobus App help: https://help.pasilobus.com/multi-ship Section: Features Last updated: 2026-08-31 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Multi Ship displays text on your storefront during the split shipping flow, including button labels, modal headings, instructions, and error messages. You can translate all of this text into any language your store supports. ## Adding a language Go to **Settings > Translations** and click **Add language**. Select the language you want to add from the list. A new set of translation fields will appear for that language, pre-filled with the English defaults. ## Editing translations Each translatable string has a text field where you can enter your custom text. Strings are grouped by where they appear in the split shipping flow: cart page, address step, item assignment step, review step, and general labels. Edit any field and save to update what customers see. ## What text is translatable You can translate the checkbox label, button text, modal headings, step instructions, form labels (like "Gift note" and "Delivery instructions"), action buttons ("Next," "Back," "Continue to checkout"), error messages, and empty state text. Every piece of text that a customer sees during the split shipping flow can be customized. ## How it works Multi Ship automatically detects the customer's language based on your Shopify store's locale settings. If a translation exists for that language, it is used. Otherwise, the default English text is shown. --- # Order Management > View and track split shipping orders in the app dashboard Source: https://help.pasilobus.com/multi-ship/order-management App: MultiShip Address Checkout Shopify App Store: https://apps.shopify.com/multi-ship-pasilobus App help: https://help.pasilobus.com/multi-ship Section: Features Last updated: 2026-08-31 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) The Multi Ship dashboard gives you a central place to view and manage all split shipping orders. You can track each shipment's status from creation through fulfillment. ## Dashboard overview The main dashboard shows key metrics at a glance, including the number of split orders, pending shipments, and recently completed orders. ## Order list The orders page displays all split shipping orders with search and filters. You can search by order number or customer name, and filter by fulfillment status or date range. Each row shows the parent order number, customer name, number of shipments, and overall status. ## Parent orders vs child shipments When a customer splits their cart, Multi Ship creates a parent order (the original Shopify order) and one or more child orders (one per shipping address). The order list shows parent orders, and clicking into one reveals all its child shipments. Child orders show the billing address of the person who paid the original order. If you prefer each child order to show its recipient's shipping address as the billing address instead, turn on **Use each recipient's address as the billing address** in **Settings > Order splitting**. Taxes are not affected either way — sales tax is always calculated from the shipping address. ## Importing addresses from a CSV When splitting an order with many destinations, you don't have to type every address. Choose **Import** in the split editor to upload a CSV file of recipient addresses — each row becomes one shipment, ready for you to assign items. A sample file with the expected columns is available for download on the import screen. ## Creating orders from the Shopify admin You do not have to start from an existing order. **Create MultiShip order** appears in the **More actions** menu on both the **Orders** and **Draft orders** pages of your Shopify admin and opens the order builder, where you pick products, assign them to addresses with live shipping rates, and email the customer a payment link. On an existing order, the **Split order** action opens the manual split editor instead. If you have edited the order in Shopify, the editor shows it as it is now — items you removed are no longer offered for splitting. The builder can send the customer one combined invoice for the whole order, or a separate invoice per address. Two options control discounts: - **Apply automatic discounts** — on by default. Your store's automatic discounts are applied to each shipment when the order is priced, exactly as they would be at checkout. Turn it off to charge regular prices with no automatic discounts. - **Allow discount codes at checkout** — for separate invoices only. Lets the customer enter a discount code when they pay each invoice. Each address needs a shipping rate before you can review the order. When Shopify returns no rate for an address (check your shipping zones), choose **Custom rate** and enter the amount to charge — enter 0 for free shipping — or turn off shipping for that address. If an address matches one of your shipping rules that block a destination, the editor shows a warning. You can still create the shipment; the rule only stops customers from choosing that destination themselves. ## Orders that need attention An order shows as **Needs attention** in two situations: - **Some shipment orders aren't in Shopify yet.** Shopify occasionally refuses to create an order for a moment (for example when many are created at once). Multi Ship retries automatically, usually within a few minutes, and the order page names the shipments still waiting. If one still can't be created after about two hours, the timeline says so and you can create it by hand from the shipment details. - **The order was not split.** Before splitting, Multi Ship confirms the order is fully paid at the prices it calculated for the checkout. If it isn't, the order is held and the page shows the reason. Check the payment in Shopify, then split it manually if it's correct. ## Order detail page The detail view shows the parent order at the top with its child shipments below. Each shipment displays the destination address, assigned items, shipping method, gift notes (if any), and fulfillment status. A timeline tracks key events like order creation, payment, and fulfillment updates. A summary line above the shipments counts the per-address orders, their items and value, and how many are fulfilled. Large splits show 20 shipments per page, with **Previous** and **Next** below. ## Split view Opening **Split order** on an order that was already split shows it as a tree: the original order at the top, with a line branching down to each per-address order, its status, recipient and total. Each order name opens it in Shopify. Opening it on one of the per-address orders shows the same tree with that order marked **This order**. An order can be split only once, and a per-address order can't be split again. ## On the Shopify order page Add the **MultiShip shipments** block to your order page once: open any order in your Shopify admin, choose **More actions → Customize** (or the block menu at the bottom of the page), and pin **MultiShip shipments**. On an order Multi Ship split, it lists each per-address order with its status, recipient and place, and item count, each linked to that order. On a per-address order, it links back to the original order. Held orders show why they were not split. ## Shopify Flow Multi Ship sends two Shopify Flow triggers, listed in **Settings > Integrations**: - **Order split into shipments** — runs when a paid order becomes one order per address, at checkout, by a manual split, or when a combined invoice from the order builder is paid. It passes the original order, the number of orders it became, their names, and how it was split. - **Multi-address order held for review** — runs when an order is held instead of split because its payment does not match what Multi Ship calculated. It passes the order and the reason. For example, tag the original order, post the shipment orders' names to your team, or email yourself when an order is held. ## Fulfillment tracking As you fulfill child orders in Shopify, Multi Ship automatically updates their status in the dashboard. You can see which shipments are unfulfilled, in progress, or completed at a glance. A paid shipment that has not shipped yet shows as **Unfulfilled**. ## Fulfilling orders You fulfill each child order directly in your Shopify admin, just like any regular order. Multi Ship does not change your fulfillment workflow. It simply organizes split orders so you can track which shipments belong together. The original order from a multi-address checkout (or a combined invoice from the order builder) holds only the **Multi-Address Delivery** lines and ships nothing itself. Multi Ship marks it fulfilled, without emailing the customer, and archives it once every per-address order exists, so it never waits among your unfulfilled orders. To leave it unfulfilled, turn off **Mark the original order fulfilled after it's split** in **Settings > Order splitting**. When you split an order yourself, its original is marked fulfilled the same way before it's archived, because every item now ships in the new orders. That way it can't be shipped twice. If you choose to cancel the original instead, it's cancelled and not marked fulfilled. ## Reports and bookkeeping Because splitting creates new orders, your revenue reports can count the same payment twice unless adjusted. **Settings > Taxes & bookkeeping** explains what to adjust and provides a CSV export with the total to subtract — see the Taxes & Bookkeeping article for details. --- # Subscriptions > Split subscription orders across multiple addresses (requires the Pasilobus Subscriptions app) Source: https://help.pasilobus.com/multi-ship/subscriptions App: MultiShip Address Checkout Shopify App Store: https://apps.shopify.com/multi-ship-pasilobus App help: https://help.pasilobus.com/multi-ship Section: Features Last updated: 2026-08-31 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Multi Ship can split subscription orders across multiple addresses — for example, sending the same recurring box to yourself and to a family member. This works together with the **Pasilobus Subscriptions** app, which handles the recurring billing and delivery for each destination. ## What you need - **Multi Ship** — lets the customer split their items across addresses at checkout, exactly the same way they do for a one-time order. - **Pasilobus Subscriptions** — turns each destination into its own recurring delivery, so renewals continue to ship to every address on schedule. Both apps must be installed on your store. Multi Ship still splits regular one-time orders on its own — the Subscriptions app is only required for splitting **subscription** orders. ## How it works - The customer selects a subscription and assigns items to addresses at checkout, just like a normal split order. - Each address is set up as its own recurring delivery, kept on the same billing and delivery schedule so shipments stay in sync. - Shipping and tax are calculated per destination, the same as a one-time split order. ## Managing subscription splits Each destination is managed as a recurring delivery in the Subscriptions app, where pauses, skips, frequency changes, and address updates are handled. Multi Ship's role is limited to capturing the split at checkout. --- # Display Mode > Choose between checkbox and button mode for the storefront Source: https://help.pasilobus.com/multi-ship/display-mode App: MultiShip Address Checkout Shopify App Store: https://apps.shopify.com/multi-ship-pasilobus App help: https://help.pasilobus.com/multi-ship Section: Features Last updated: 2026-08-31 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Multi Ship appears on your cart page in one of two display modes. The display mode controls how customers activate the split shipping flow. ## Checkbox mode A checkbox appears above your theme's checkout button with a label like "Ship to multiple addresses." When a customer checks the box, the split shipping modal opens. The original checkout button remains visible, so customers who do not need split shipping can check out normally. This mode works well for most stores because it is unobtrusive and clearly optional. ## Button mode (default) A dedicated split shipping button appears on the cart page. Clicking the button opens the split shipping modal. This mode is more prominent and draws attention to the split shipping feature, which can be useful if multi-address shipping is a key selling point for your store. ## When to use checkbox mode Choose this if split shipping is a secondary feature for your store. The checkbox stays out of the way and lets customers opt in only when they need it. ## When to use button mode Choose this if you want to highlight split shipping as a primary feature. The button is more visible and works well for stores where customers frequently ship to multiple addresses, such as gift shops or corporate gifting stores. ## Single-item carts The split shipping option only appears when the cart has two or more items. When there's just one item, a small note under the checkout button lets customers know multi-address delivery becomes available with more items — a gentle way to make the feature discoverable. You can turn this note off under **Settings > Orders** if you prefer a completely clean cart. ## Where to configure In your theme editor, open **App embeds**, expand **MultiShip**, and set **Display Mode** to **Button** or **Checkbox**. Save the theme to apply it to your storefront. --- # CSV Address Import > Import addresses from a spreadsheet — at checkout and in the admin Source: https://help.pasilobus.com/multi-ship/csv-import App: MultiShip Address Checkout Shopify App Store: https://apps.shopify.com/multi-ship-pasilobus App help: https://help.pasilobus.com/multi-ship Section: Features Last updated: 2026-08-31 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Typing dozens of addresses by hand is the slowest part of a large multi-address order. Both your customers and you can skip it by importing addresses from a spreadsheet saved as a CSV file. ## Customers can import at checkout On the address step of the split shipping flow, customers will find an **Import addresses from CSV** link along with a **Download sample CSV** link. Uploading a file adds every address and selects them automatically, ready for item assignment. This is available on every plan. - The sample file shows the expected columns: first name, last name, company, address, apartment, city, state, ZIP, country, and phone — plus two optional columns, **gift note** and **delivery instructions**, that fill in the matching fields for each shipment when you have those features enabled - Column headers are accepted in your store's language — a customer can upload a file with headers like "Vorname" or "住所" and it will import correctly, and the sample file downloads with headers in the customer's language - If a row leaves the country blank, the country your customer is shopping in is used - Logged-in customers who import an address that exactly matches one already saved to their account get that saved address selected rather than a duplicate - If someone uploads an Excel file by mistake, they see a friendly message asking them to save it as CSV first ## Importing in the admin The same import is available to you when splitting an order or building a MultiShip order in the admin. In the split editor, choose **Import** to upload a CSV of recipient addresses — each row becomes one shipment, and you assign items afterwards. Gift note and delivery instruction columns are carried into each shipment, and a blank country defaults to your store's own country. ## Tips for clean imports - Use the sample file as your starting point — its column names always work - Two-letter country codes (US, CA, DE) are the most reliable way to fill the country column - Rows missing a street address, city, or ZIP are skipped, so a partial list still imports the complete rows --- # Taxes & Bookkeeping > How split orders affect tax and revenue reports, with a CSV export for your accountant Source: https://help.pasilobus.com/multi-ship/taxes-and-bookkeeping App: MultiShip Address Checkout Shopify App Store: https://apps.shopify.com/multi-ship-pasilobus App help: https://help.pasilobus.com/multi-ship Section: Features Last updated: 2026-08-31 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Splitting an order creates new orders in Shopify, and that raises two fair questions: is tax handled correctly, and do the new orders distort your revenue reports? The short answers are yes and only if unadjusted — and the app gives you the export to adjust with. You can find these tools in **Settings > Taxes & bookkeeping**. ## Sales tax Multi Ship calculates sales tax for each split order according to your store's tax settings, per destination address. Your Shopify sales tax reports work as usual and require no adjustment. Customers are never charged twice — the split orders record the payment that was already made. ## Where tax appears The original order records the payment. The split orders record what went to each address, including that address's tax. - **Original order** — may show no separate tax line. On orders created with the draft order tools, each address's tax is built into that address's line price, so the paid total includes the tax but the order shows only a subtotal. For example, 8 shipments of $100 with 5 to taxed addresses at $8 each are paid as $840, with no tax line. - **Split orders** — each one shows its own price and tax for its destination (in the example, $100 + $8 tax = $108 for each taxed address). For sales tax reporting, use the split orders rather than the original order. ## Discount codes Multi Ship works out each address's price and tax while the customer sets up their addresses. Only discount codes already on the cart at that moment are included. - **Codes applied in the cart** — included in each address's price, and tax is calculated on the discounted amount. The split orders match what the customer paid. - **Codes entered later at Shopify checkout** — discount the payment on the original order. Each split order then carries that discount too, as the amount Shopify took off that address's line, named after the code, so the split orders still add up to what the customer paid. Their tax lines stay as worked out before the code, on the full price. To keep tax on split orders exact: - **Exclude the Multi-Address Delivery product** when you create a discount code, and keep your real products included. A code entered only at checkout can then no longer change the payment after the per-address amounts are set. - **Ask customers to apply codes in the cart** before they choose multiple addresses. ## Revenue reports If original orders are not cancelled after splitting, the original order and its split orders both appear in your revenue reports, counting the same payment twice. - **If you keep original orders** — subtract the split orders' total from your revenue. The bookkeeping export provides this total. Most merchants keep originals, since a cancelled order can look confusing when the customer views it in their account, and the original remains the record of payment. - **If you cancel original orders** — Shopify records a cancellation reversal, so your net sales figures require no adjustment. Gross sales still includes the original, so the export remains useful when reconciling gross figures. ## Bookkeeping export In **Settings > Taxes & bookkeeping**, choose a year (and optionally a month) and click **Download CSV**. The file lists every Multi Ship split order for the period with amounts and destinations, and ends with the total to subtract — ready to hand to your accountant. --- # Accent Color > Customize the accent color to match your store's branding Source: https://help.pasilobus.com/multi-ship/accent-color App: MultiShip Address Checkout Shopify App Store: https://apps.shopify.com/multi-ship-pasilobus App help: https://help.pasilobus.com/multi-ship Section: Features Last updated: 2026-04-04 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Multi Ship uses an accent color for interactive elements in the split shipping modal. You can customize this color to match your store's branding so the experience feels seamless. ## What it affects The accent color is applied to buttons, checkboxes, active step indicators, and other interactive elements within the split shipping modal. It ensures that the modal looks like a natural part of your store rather than a third-party overlay. ## Setting the accent color Open the Shopify theme customizer by going to **Online Store > Themes > Customize**. In the left sidebar, find the Multi Ship app embed under **App Embeds**. Click on it to expand its settings, then use the color picker to choose your accent color. Click **Save** to apply. ## Tips for choosing a color Use your store's primary brand color or a color that matches your theme's buttons for the most cohesive look. Make sure the color has enough contrast against a white background so buttons and interactive elements remain easy to read and click. --- # Checkbox Not Showing > The split shipping checkbox doesn't appear on the cart page Source: https://help.pasilobus.com/multi-ship/checkbox-not-showing App: MultiShip Address Checkout Shopify App Store: https://apps.shopify.com/multi-ship-pasilobus App help: https://help.pasilobus.com/multi-ship Section: Troubleshooting Last updated: 2026-04-04 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) If the split shipping checkbox (or button) is not appearing on your cart page, there are a few common causes to check. ## App embed not enabled Multi Ship requires the app embed to be turned on in your theme. Go to **Online Store > Themes > Customize**, then open **App Embeds** in the left sidebar. Make sure Multi Ship is toggled on and click **Save**. If you recently switched themes, you will need to enable the embed again on the new theme. ## Cart has fewer than 2 items The split shipping option only appears when there are at least two items in the cart. With a single item, there is nothing to split, so the checkbox is intentionally hidden. Add a second item to test. ## Theme compatibility Multi Ship works with most Shopify themes, but some heavily customized themes may use non-standard cart page structures. If the embed is enabled and you have multiple items in the cart but still do not see the checkbox, your theme's cart page may need a small adjustment. Contact support with your theme name and we can help identify the issue. ## Check display mode If you are looking for a checkbox but have switched to **Button** mode (or vice versa), the element may look different than expected. Verify your current display mode in **Settings > Display**. ## Browser cache After enabling the app embed, try clearing your browser cache or opening your store in an incognito window. Cached pages may not reflect the latest changes. --- # Orders Not Splitting > Orders are placed but not being split into separate shipments Source: https://help.pasilobus.com/multi-ship/orders-not-splitting App: MultiShip Address Checkout Shopify App Store: https://apps.shopify.com/multi-ship-pasilobus App help: https://help.pasilobus.com/multi-ship Section: Troubleshooting Last updated: 2026-04-04 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) If customers complete checkout through the split shipping flow but the order is not being split into separate shipments, check the following. ## Virtual product missing Multi Ship uses a virtual product ("Multi-Address Delivery") behind the scenes to manage split shipments at checkout. If it's deleted, set to draft or archived, or removed from your online store, Multi Ship restores or recreates it automatically, both when it's deleted and the next time a customer checks out. You don't need to do anything, and you can rename it freely. ## Order held for review If an order shows **Needs attention** and says it was not split, Multi Ship couldn't confirm it was fully paid at the prices it calculated for the checkout. The reason is shown on the order page. Check the payment in Shopify, then split the order manually if it's correct. ## Some shipment orders are still being created If an order shows **Needs attention** and lists shipment orders that aren't in Shopify yet, Shopify refused to create them for a moment (common on development and trial stores, which can only create a few orders per minute). Multi Ship retries automatically. They usually appear within a few minutes. ## Webhook not registered After checkout, Multi Ship relies on Shopify webhooks to trigger the order splitting process. If webhooks are not properly registered, the app will not be notified when an order is placed. Reinstalling the app or visiting the app settings page usually re-registers webhooks automatically. ## Order was not a split order Only orders that go through the Multi Ship modal are split. If a customer skipped the split shipping flow and checked out normally, the order will not be split. Check the order in the Multi Ship dashboard to see if it was processed as a split order. ## Payment not captured yet Multi Ship splits an order when it is paid. If your store captures payments manually (**Settings > Payments > Payment capture method**), a new order is only **Authorized** and stays unsplit until you capture the payment. Click **Capture payment** on the order and the per-address orders appear within a few seconds. ## Processing delay Order splitting happens shortly after checkout. In most cases it completes within a few seconds, but during high traffic periods there may be a brief delay. Wait a minute and refresh the order page. ## Contact support If the virtual product exists, webhooks are registered, and the order went through the split shipping flow but still was not split, contact support with the order number so we can investigate. --- # Shipping Rates Not Loading > Shipping rates show as loading or fail to appear Source: https://help.pasilobus.com/multi-ship/shipping-rates-not-loading App: MultiShip Address Checkout Shopify App Store: https://apps.shopify.com/multi-ship-pasilobus App help: https://help.pasilobus.com/multi-ship Section: Troubleshooting Last updated: 2026-04-04 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) If shipping rates are not loading during the split shipping flow, the issue is usually related to your Shopify shipping configuration or the address entered by the customer. ## Shipping zones not configured Multi Ship fetches rates from your existing Shopify shipping zones. If a customer's address falls outside any of your defined shipping zones, no rates will be available. Go to **Settings > Shipping and delivery** in your Shopify admin and make sure your shipping zones cover all regions you want to ship to. ## Invalid address Shipping rates cannot be calculated for incomplete or invalid addresses. Make sure the customer has entered a full address including city, state, province or prefecture where the country has them, postal code, and country. If the address is missing required fields, the rate lookup will fail. ## A shipping rule is hiding or blocking the destination If you use shipping rules (Max and above), check **Settings > Shipping rates**. A hiding rule removes matching rates from split shipments, and a blocking rule stops customers from shipping to matching addresses, showing them a message instead of rates. If a rule is too broad, narrow it or remove it. ## Shipping profiles If you use multiple shipping profiles in Shopify, make sure the products in the split shipment are assigned to a profile that covers the destination address. Products without a matching shipping profile will not return rates. ## Rate limits If many customers are using split shipping simultaneously, rate lookups may occasionally be delayed. This is rare but can happen during flash sales or peak traffic. Rates should load after a brief wait. ## Third-party rate apps If you use a third-party app for calculated shipping rates (like real-time carrier rates), make sure that app is working correctly. Multi Ship relies on whatever rates Shopify returns, so issues with rate providers will affect the split shipping flow as well. ## Test with a simple address To isolate the problem, try a split shipment with a well-known domestic address. If rates load for that address but not others, the issue is likely with the specific address or shipping zone coverage. --- # Installation > Install Order Limits and activate it on your store Source: https://help.pasilobus.com/order-limits/installation App: Order Limits (on the Shopify App Store as "Pasilobus Order Limits") Shopify App Store: https://apps.shopify.com/order-limits-pasilobus App help: https://help.pasilobus.com/order-limits Section: Getting Started Last updated: 2026-04-04 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) After installing from the Shopify App Store, you need to activate the app on your theme so it can enforce quantity rules on your storefront and at checkout. When you first open the app, a **theme setup wizard** walks you through activation: - **Choose your theme** -- Select the theme you want to activate quantity limits on. If you have multiple themes, you can repeat this for each one. - **Enable the app embed** -- The wizard opens your theme customizer to the **App Embeds** section. Toggle the Order Limits embed to **On** and click **Save**. This embed runs invisibly on every page -- it does not add any visible content to your store. - **Click Complete** -- Back in the app, click **Complete** to verify the embed is active. The wizard checks that everything is connected properly. Once the setup wizard shows a green checkmark, you are ready to create your first quantity rule. ## Verifying It Works - Go to any product page on your storefront - Add a quantity rule for that product in the app (see Product Quantity Rules) - Refresh the product page -- you should see the quantity selector respect your new limits - Try adding more than the maximum to the cart -- the app blocks it and shows an error message If you use multiple themes (e.g., a staging theme), repeat the setup wizard for each theme from **Settings > Installation**. ## Plans - **Starter** - $1.99/month. Up to 5 rules: product and variant limits (min, max, step, fixed and preset quantities), collection limits, cart item-count and order-value limits, custom and translated error messages, checkout validation - **Pro** - $4.99/month. Unlimited rules, plus cart weight limits, customer-tag rules, scheduled start and end dates, and inventory-aware limits Starter starts with a 7-day free trial, and development stores use the app for free. If a store moves from Pro back to Starter, no rule is deleted: every rule keeps working, but no new rule can be added while there are more than 5. Weight limits and customer-tag rules are paused on Starter and work again after upgrading. The dashboard explains both. Starter replaced the Free plan on November 9, 2026. Stores that installed Order Limits before then and haven't chosen a paid plan keep the Free plan, with the same limits as Starter, at no charge. Free isn't offered again once you leave it: after moving to Starter or Pro, you can't switch back to Free. While you're on Free, Settings and the dashboard's upgrade prompts remind you. --- # Product Quantity Rules > Set min, max, and step quantities for products Source: https://help.pasilobus.com/order-limits/product-quantity-rules App: Order Limits (on the Shopify App Store as "Pasilobus Order Limits") Shopify App Store: https://apps.shopify.com/order-limits-pasilobus App help: https://help.pasilobus.com/order-limits Section: Features Last updated: 2026-04-04 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Product quantity rules let you control exactly how many units a customer can buy. You can set a minimum (they must buy at least X), a maximum (they can buy at most X), or a step increment (they buy in multiples of X). ## Creating a Rule - Go to **Rules** and click **Create rule** - Choose the products or variants you want the rule to apply to - Set your limits: - **Minimum quantity** -- The smallest amount a customer can add to cart. Useful for wholesale or bulk-only products. - **Maximum quantity** -- The largest amount allowed per order. Useful for limited stock or fair-use policies. - **Step / increment** -- Forces purchases in multiples (e.g., step of 6 means customers can buy 6, 12, 18, etc.). Great for products sold by the case or pack. - Save the rule You can combine all three settings on the same rule. For example, minimum 2, maximum 20, step 2 means customers can buy 2, 4, 6, 8... up to 20. ## What the Customer Sees - The quantity selector on the product page adjusts automatically -- the +/- buttons skip to valid amounts - If a customer tries to enter an invalid quantity, they see an inline message explaining the limit - At checkout, Shopify validates the quantity again so limits cannot be bypassed ## Plan Available on all plans, including Starter (up to 5 rules). The Pro plan supports unlimited rules. --- # Preset Quantities > Replace the quantity input with a dropdown of fixed options Source: https://help.pasilobus.com/order-limits/preset-quantities App: Order Limits (on the Shopify App Store as "Pasilobus Order Limits") Shopify App Store: https://apps.shopify.com/order-limits-pasilobus App help: https://help.pasilobus.com/order-limits Section: Features Last updated: 2026-04-04 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Preset quantities replace the standard +/- quantity input with a dropdown of fixed options. Instead of letting customers type any number, they choose from a predefined list like 500, 1000, 2500, or 5000. This is ideal for products sold in specific lot sizes -- printing supplies, raw materials, labels, or anything where only certain quantities make sense. ## Setting Up Presets - Go to **Rules** and create or edit a rule - Enable **Preset quantities** - Enter your values separated by commas (e.g., `500, 1000, 2500, 5000`) - Save the rule ## When to Use Presets vs Range Limits - **Presets** -- When only specific quantities are valid (e.g., you only sell in packs of 500, 1000, or 5000) - **Min/max/step** -- When any quantity within a range works (e.g., buy between 1 and 100 in multiples of 5) ## What the Customer Sees - A dropdown replaces the quantity input on the product page - The dropdown lists your preset values in order - Works across all Shopify themes -- the app detects and replaces the native quantity input automatically ## Presets and Inventory If a preset value exceeds available stock, that option is automatically removed from the dropdown. For example, if you set presets of 10, 25, and 50 but only 30 units are in stock, the dropdown shows 10 and 25 only. ## Plan Available on all plans, including Starter. --- # Cart & Order Limits > Control cart totals with item count, amount, and weight limits Source: https://help.pasilobus.com/order-limits/cart-limits App: Order Limits (on the Shopify App Store as "Pasilobus Order Limits") Shopify App Store: https://apps.shopify.com/order-limits-pasilobus App help: https://help.pasilobus.com/order-limits Section: Features Last updated: 2026-04-04 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Cart and order limits control the overall cart rather than individual products. You can require a minimum or maximum number of items, a minimum or maximum order value, or weight-based limits before customers can check out. ## Setting Up Cart Limits - Go to **Settings > Cart Limits** - Configure any combination of limits: - **Minimum items** -- Require at least X items in the cart (e.g., minimum 3 items per order) - **Maximum items** -- Cap the total number of items (e.g., no more than 50 items per order) - **Minimum order value** -- Require a minimum dollar amount (e.g., orders must be at least $25) - **Maximum order value** -- Cap the order total (e.g., orders cannot exceed $500) - **Minimum weight** -- Require a minimum total weight - **Maximum weight** -- Cap total cart weight (useful for shipping constraints) - Save your settings ## What the Customer Sees - A banner appears above the checkout button on the cart page explaining what needs to change - The checkout button is disabled until the cart meets all limits - At checkout, Shopify validates the limits again -- even if a customer bypasses the storefront warning, the order is blocked ## Examples - Minimum order of $50 for free shipping eligibility - Maximum 2 items from a limited-edition drop - Maximum 30 kg to stay within shipping carrier limits ## Plan Item count and order value limits are available on all plans. Weight-based limits require the Pro plan. On Starter, weight limits in saved rules are paused (the dashboard says so) and work again after upgrading. --- # Collection Limits > Limit how many items customers can buy from a collection Source: https://help.pasilobus.com/order-limits/collection-limits App: Order Limits (on the Shopify App Store as "Pasilobus Order Limits") Shopify App Store: https://apps.shopify.com/order-limits-pasilobus App help: https://help.pasilobus.com/order-limits Section: Features Last updated: 2026-04-04 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Collection limits let you cap how many items a customer can buy from a specific collection in a single order. This is useful when you want to restrict purchases across a group of products rather than setting limits on each product individually. ## Setting Up Collection Limits - Go to **Rules** and click **Create rule** - Choose **Collection limit** as the rule type - Select the collection you want to limit - Set the **maximum items** a customer can buy from that collection per order - Save the rule ## Use Cases - **Limited editions** -- Allow only 1 item per order from your "Limited Edition" collection - **Sample packs** -- Let customers pick up to 5 samples from your "Samples" collection - **Fair access** -- Limit high-demand product categories so more customers can purchase ## What the Customer Sees - When a customer tries to add more items from the collection than allowed, they see an error message - The error explains how many items from that collection are already in the cart and the maximum allowed - At checkout, Shopify validates the limit again to prevent bypass ## How It Works With Other Rules Collection limits work alongside product-level rules. If a product has both a product quantity rule and falls within a collection limit, both are enforced. The stricter limit wins. ## Plan Available on all plans, including Starter (counts toward your rule limit). The Pro plan supports unlimited rules. --- # Per-Customer Purchase Caps > Limit how many of a product each customer can buy, for good or per number of days Source: https://help.pasilobus.com/order-limits/purchase-caps App: Order Limits (on the Shopify App Store as "Pasilobus Order Limits") Shopify App Store: https://apps.shopify.com/order-limits-pasilobus App help: https://help.pasilobus.com/order-limits Section: Features Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Purchase caps limit how many of a product each customer can buy across all their orders, either for good or over a rolling number of days. Use them for limited releases, launch drops or anything you want to share fairly, such as "2 per customer" or "1 every 30 days". A per-order maximum (Product Quantity Rules) stops a large single order; a cap also stops the same customer from coming back for more. ## Setting Up a Cap - Go to **Purchase caps** in the app menu and click **Add purchase cap** - Give it a **Name** (only you see it) - Set **Most a customer can buy**, for example 2 - Choose what the count covers in **Counted over**: - **Lifetime (all orders)** -- every order the customer places counts - **Every 7, 30, 90 or 365 days (rolling)** -- only orders from that many days back count, so the customer can buy again once older orders fall out of the window - Click **Add products**, **Add variants** or **Add collections** to pick what the cap covers - Save the cap Each product, variant or collection you pick has its own count: a cap of 2 on two products lets a customer buy 2 of each. A collection counts all of its products together, so a cap of 3 on a collection means 3 items from that collection in total. ## Allow the App to Count Purchases The first time you open **Purchase caps**, the app asks for permission to save each customer's purchase count on their customer record in Shopify. Click **Allow access** and approve. Only the number of units bought of each capped product is saved, nothing else about the customer or the order. Caps are not enforced until you allow it. ## Logged-In Customers Only A store can only tell who is buying when the customer is logged in to their account. Caps therefore apply to logged-in customers. A guest is not capped, because the next guest checkout could be anyone. To close that gap, turn on **Require login to buy capped products** on the cap. A guest with a capped product in their cart can still add to the cart, but checkout asks them to log in before they can pay. This needs customer accounts to be turned on in **Shopify Admin > Settings > Customer accounts**. ## What Customers See - **Product page** -- next to the quantity field: "You can buy at most 2 of this product." A logged-in customer who already bought some sees how many they have left, and the quantity field stops at that number. (This needs the Order Limits app embed turned on in your theme.) - **Cart and checkout** -- a customer who would go over the cap sees "Sneaker is limited to 2 per customer" and cannot complete the order until they lower the quantity. You can change the wording on the **Texts** page (key `product_max_per_customer`; it can use `{product}`, `{max}`, `{bought}` and `{remaining}`). ## What Counts - Orders count from the moment a product is capped. Orders placed before you created the cap are not counted. - Cancelled or refunded orders still count. - Changing a cap's products, window or status recalculates every customer's count straight away. ## Plan Purchase caps need the Pro plan. If your store moves to Starter, caps are paused: checkout and the product page skip them, and the caps list shows **Paused: needs Pro**. They are kept, and work again as soon as you upgrade. --- # Customer-Specific Rules > Apply different limits based on customer tags Source: https://help.pasilobus.com/order-limits/customer-tag-rules App: Order Limits (on the Shopify App Store as "Pasilobus Order Limits") Shopify App Store: https://apps.shopify.com/order-limits-pasilobus App help: https://help.pasilobus.com/order-limits Section: Features Last updated: 2026-04-04 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Customer-specific rules let you apply different quantity limits based on customer tags. This means wholesale customers, VIPs, and retail shoppers can each have their own buying limits on the same products. Shopify customer tags are labels you assign to customers in the **Customers** section of your admin. Common examples: `wholesale`, `vip`, `retail`, `employee`. ## Setting Up Customer Tag Rules - Go to **Rules** and create or edit a rule - In the **Customer tags** section, enter one or more tags - Set the quantity limits for customers with those tags - Save the rule You can create multiple rules for the same product with different tags. For example: - **Retail customers** (no tag) -- max 5 per product - **Wholesale** (tag: `wholesale`) -- min 50, step 10, no maximum - **VIP** (tag: `vip`) -- max 20 per product ## What Happens for Customers Without Matching Tags - If a rule targets a specific tag and the customer does not have that tag, the rule does not apply to them - If you also have a general rule (no tag filter) for the same product, that rule applies instead - If no rules match, the product has no quantity restrictions ## What the Customer Sees - Logged-in customers see limits based on their tags automatically - Guest customers (not logged in) only see rules that have no tag filter - Error messages at checkout reflect the limits that apply to the specific customer ## Plan Requires the Pro plan. On Starter, rules limited to customer tags are paused rather than applied to everyone, and work again after upgrading. --- # Scheduling Rules > Set start and end dates for your quantity rules Source: https://help.pasilobus.com/order-limits/scheduling App: Order Limits (on the Shopify App Store as "Pasilobus Order Limits") Shopify App Store: https://apps.shopify.com/order-limits-pasilobus App help: https://help.pasilobus.com/order-limits Section: Features Last updated: 2026-04-04 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Scheduling lets you set start and end dates on your quantity rules so they activate and expire automatically. This is useful for time-limited promotions, seasonal restrictions, or pre-order windows. ## Setting Up a Schedule - Go to **Rules** and create or edit a rule - In the **Schedule** section, set a **start date**, an **end date**, or both - **Start date only** -- The rule activates on that date and stays active indefinitely - **End date only** -- The rule is active now and automatically turns off on that date - **Both dates** -- The rule is only active during that window - Save the rule ## Time Zone Schedules use your store's time zone as configured in **Shopify Admin > Settings > General**. All start and end times are midnight in your store's time zone. ## Use Cases - **Flash sales** -- Set a maximum quantity of 2 per order during a 24-hour sale event - **Seasonal limits** -- Limit holiday items to 5 per order during November and December - **Pre-orders** -- Set a minimum order quantity during the pre-order window, then remove it at launch - **Wholesale windows** -- Open bulk ordering only during specific weeks ## What Happens at the Start and End Time - The app switches the rule on at its start time and off at its end time, for the product page, the cart page and checkout. No action is needed from you - The rule stays in your list with its status unchanged, so you can edit the dates and reuse it - Products covered by a rule outside its window go back to their default behavior (or to any other active rule) ## Plan Scheduling needs the Pro plan. If your store moves to Starter (or Free), every rule with a start or end date is paused: the product page, the cart and checkout skip it, and the rules list shows it as **Paused: needs Pro**. Its dates are kept. You can still edit the rule's other settings, but not its dates. Upgrade to Pro and the rule runs on its schedule again right away. --- # Multilingual Error Messages > Customize error messages in 21 languages Source: https://help.pasilobus.com/order-limits/translations App: Order Limits (on the Shopify App Store as "Pasilobus Order Limits") Shopify App Store: https://apps.shopify.com/order-limits-pasilobus App help: https://help.pasilobus.com/order-limits Section: Features Last updated: 2026-04-04 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) When quantity limits are enforced, customers see error messages like "Minimum quantity is 5" or "You can add at most 10 of this item." Translations let you customize these messages in multiple languages to match your store's locale. The app supports 21 languages out of the box, and messages are shown automatically based on your customer's browser language or your store's language settings. ## Editing Error Messages - Go to **Settings > Translations** - Select the language you want to edit - Each message type has a default text that you can customize: - **Minimum quantity message** -- Shown when a customer tries to buy fewer than the minimum - **Maximum quantity message** -- Shown when a customer tries to exceed the maximum - **Step quantity message** -- Shown when the quantity is not a valid multiple - **Cart limit messages** -- Shown on the cart page when cart-level limits are not met - Edit the text and save Messages support dynamic placeholders like `{min}`, `{max}`, and `{step}` that are replaced with the actual values from your rules. ## Where Messages Appear - **Product page** -- Inline message near the quantity selector - **Cart page** -- Banner above the checkout button - **Checkout** -- Shopify's checkout validation error area ## Default Behavior If you do not customize any messages, the app uses sensible defaults in English. If your store uses Shopify Markets with multiple languages, the app automatically picks the right translation. ## Plan Available on all plans, including Starter. --- # Inventory-Aware Limits > Automatically cap quantities based on available stock Source: https://help.pasilobus.com/order-limits/inventory-aware-limits App: Order Limits (on the Shopify App Store as "Pasilobus Order Limits") Shopify App Store: https://apps.shopify.com/order-limits-pasilobus App help: https://help.pasilobus.com/order-limits Section: Features Last updated: 2026-04-04 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Inventory-aware limits automatically adjust your maximum quantity based on available stock. This prevents customers from ordering more than you can fulfill, even when you have step increments that do not divide evenly into your inventory. ## How It Works - You set a rule with a step of 5 (customers buy in multiples of 5) - A product has 12 units in stock - Without inventory awareness, the customer could select 15 -- exceeding stock - With inventory awareness, the maximum is automatically capped at 10 (the highest valid multiple of 5 that does not exceed 12) The app recalculates the limit in real time based on current inventory levels. As stock changes, the enforced maximum updates automatically. ## Enabling Inventory-Aware Limits - Go to **Settings** and find **Rule Settings** - Tick **Inventory-aware limits** - Click **Save** The setting applies to every rule. Your storefront picks it up within a minute of saving; you don't need to edit or save a rule. ## Variant-Specific Tracking Inventory is tracked per variant. If a product has sizes S, M, L with different stock levels, each variant gets its own calculated maximum. ## What the Customer Sees - The quantity selector stops at the inventory-adjusted maximum - If stock is lower than the rule's minimum, the product shows as unavailable for the quantity required - Works across all themes -- no theme customization needed ## Examples - Step of 6, stock of 25 -- max becomes 24 - Step of 10, stock of 8 -- product cannot meet the minimum step, shown as limited availability - Min 3, max 50, stock of 40 -- max becomes 40 ## Plan Requires the Pro plan. On Starter or Free the setting is locked and the storefront ignores it. --- # Quantity Notice Block > Customize where and how limit messages appear on product pages Source: https://help.pasilobus.com/order-limits/theme-notice-block App: Order Limits (on the Shopify App Store as "Pasilobus Order Limits") Shopify App Store: https://apps.shopify.com/order-limits-pasilobus App help: https://help.pasilobus.com/order-limits Section: Features Last updated: 2026-04-04 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) The Quantity Notice block lets you display limit information directly on your product pages. It shows customers the active rules for a product -- like "Buy in multiples of 6" or "Maximum 10 per order" -- before they even interact with the quantity selector. By default, the app shows notices near the Add to Cart button automatically. The theme block gives you full control over where the notice appears and how it looks. ## Adding the Block - Open your theme customizer (**Online Store > Themes > Customize**) - Navigate to a product page template - Click **Add block** in the section where you want the notice to appear - Select **Quantity Notice** from the app blocks list - Drag it to your preferred position (e.g., above or below the Add to Cart button) - Save ## Customizing Appearance - **Message style** -- Choose between a banner (with background color) or text-only - **Info color** -- Color for informational messages (e.g., "Buy in multiples of 6") - **Warning color** -- Color for warnings (e.g., "Only 8 left in stock") - **Error color** -- Color for errors (e.g., "Maximum 10 exceeded") - **Border radius** -- Round the corners of banner-style messages - **Font size** -- Match your theme's typography - **Padding** -- Adjust spacing inside the banner ## Fallback Behavior If you do not add the block to your theme, the app still displays notices using a default style positioned near the quantity selector. The block is optional -- it just gives you more control. ## Plan Available on all plans, including Starter. --- # Shopify Flow Automations > Run a workflow when a scheduled rule starts or ends Source: https://help.pasilobus.com/order-limits/shopify-flow App: Order Limits (on the Shopify App Store as "Pasilobus Order Limits") Shopify App Store: https://apps.shopify.com/order-limits-pasilobus App help: https://help.pasilobus.com/order-limits Section: Features Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Shopify Flow is Shopify's own automation tool: it makes your store do something automatically when an event happens, such as posting to Slack, emailing your team or adding a tag, without any code. Flow is a free app from Shopify; install it from the Shopify App Store if you don't have it yet. Order Limits adds two triggers to Flow. There is nothing to switch on: they ship with the app, and **Settings > Integrations** has a button that opens Flow. ## Triggers - **Order limit rule started** — Runs when an active rule with a start date reaches its start time and its limits begin to apply. It carries **Rule name** and **Rule type** (`product`, `collection` or `cart`). A customer-tag rule that your plan pauses doesn't start the workflow. - **Order limit rule ended** — Runs when an active rule with an end date reaches its end time and its limits stop applying. It carries **Rule name** and **Rule type**. Each runs once per rule and date. If you move a rule's start or end date, the new date runs the workflow again. Rules without dates, and Draft rules, never start a workflow. ## Example Trigger **Order limit rule started**, then a Slack or email action with the message `{{ ruleName }} is now live on the store` so your team knows the holiday limits are on. --- # Rules Not Working > What to do when quantity limits aren't being enforced Source: https://help.pasilobus.com/order-limits/rules-not-working App: Order Limits (on the Shopify App Store as "Pasilobus Order Limits") Shopify App Store: https://apps.shopify.com/order-limits-pasilobus App help: https://help.pasilobus.com/order-limits Section: Troubleshooting Last updated: 2026-04-04 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) If your quantity rules are not being enforced on the storefront, work through these checks in order. Most issues are resolved by the first two steps. - **Check that the app embed is enabled** -- Go to **Online Store > Themes > Customize**, then open **App Embeds** (the puzzle piece icon in the left sidebar). Make sure the Order Limits embed is toggled **On** and click **Save**. Without this, the app cannot modify your product pages or cart. - **Verify the rule is set to Active** -- Open the rule in the app and confirm its status is **Active**. If you are using scheduling, check that the current date falls within the start and end dates. - **Confirm products are assigned** -- Open the rule and verify the correct products or variants are listed. If you recently added new variants to a product, you may need to update the rule to include them. - **Check for scheduling dates** -- If the rule has a start date in the future, it will not activate until that date. If it has an end date in the past, it has already expired. Remove or update the dates as needed. - **Check for conflicting rules** -- If multiple rules apply to the same product, the app uses the most specific match. A variant-level rule overrides a product-level rule. Review your rules list to make sure there are no conflicts. - **Clear your browser cache** -- Theme assets can be cached by your browser. Try a hard refresh (Ctrl+Shift+R on Windows, Cmd+Shift+R on Mac) or open the page in an incognito/private window. - **Test in a different browser** -- Browser extensions (especially ad blockers) can interfere with app scripts. Test in a clean browser or incognito window to rule this out. If none of these resolve the issue, contact support with your store URL and the rule you are trying to enforce. --- # Checkout Validation Errors > Understanding error messages at checkout Source: https://help.pasilobus.com/order-limits/checkout-errors App: Order Limits (on the Shopify App Store as "Pasilobus Order Limits") Shopify App Store: https://apps.shopify.com/order-limits-pasilobus App help: https://help.pasilobus.com/order-limits Section: Troubleshooting Last updated: 2026-04-04 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Checkout validation is the final safety net that prevents orders from going through when quantity limits are not met. Even if a customer bypasses the storefront controls, Shopify blocks the order at checkout and shows an error message. ## Why Customers See Errors at Checkout - They edited the cart URL or used a direct checkout link that skips the storefront - They had items in their cart before a rule was created, and the cart now violates the new rule - A browser extension or script modified the quantity after the storefront validation ran - They are on a slow connection and the storefront script had not loaded yet ## Common Error Messages - **"Minimum quantity for [product] is X"** -- The customer needs to increase the quantity to at least X - **"Maximum quantity for [product] is X"** -- The customer needs to reduce the quantity to X or fewer - **"[Product] must be purchased in multiples of X"** -- The quantity needs to be adjusted to a valid multiple - **"Your cart must contain at least X items"** -- More items need to be added to the cart - **"Your order cannot exceed $X"** -- The cart total is above the allowed maximum ## Storefront vs Checkout Enforcement - **Storefront** -- The app adjusts the quantity selector and shows inline messages on the product and cart pages. This is the friendly, guided experience. - **Checkout** -- Shopify runs a validation function that hard-blocks the order. The customer sees an error and must go back to fix their cart. This cannot be bypassed. Both layers work together. The storefront prevents most issues before they reach checkout. The checkout validation catches anything that slips through. ## Draft Orders and Orders Created by Staff Limits apply to orders customers place through your online store checkout. Draft orders your staff create in the Shopify admin are not checked, including ones marked as paid, so staff can make an exception for a customer when needed. ## Customizing Error Messages You can change the exact wording of these messages in **Settings > Translations**. See the Multilingual Error Messages article for details. --- # Installation > Install the app and enable protection on your theme Source: https://help.pasilobus.com/photolock/installation App: Photolock Shopify App Store: https://apps.shopify.com/photolock App help: https://help.pasilobus.com/photolock Section: Getting Started Last updated: 2026-06-28 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) ## Installing from the App Store 1. Visit the [Photolock](https://apps.shopify.com/photolock) app listing on the Shopify App Store 2. Click **Add app** to begin the installation 3. Review the permissions and click **Install app** ## Enabling the App Block After installing, you need to enable Photolock on your theme: 1. In your Shopify admin, go to **Online Store** > **Themes** 2. Click **Customize** on your active theme 3. In the theme editor, click **App embeds** (the puzzle piece icon in the sidebar) 4. Find **Photolock** and toggle it **On** 5. Click **Save** Alternatively, open the Photolock app and use the **Theme Setup** section on the Settings page to check your installation status and open the theme editor directly. ## Verifying Protection is Active To confirm protection is working: 1. Open your store in a new browser tab (not the theme editor) 2. Try right-clicking on an image — the context menu should be blocked 3. Try dragging an image — it should not be draggable If you're testing in the theme editor, protection is intentionally disabled so you can still use the editor normally. Always test on your live store or preview. ## Default Settings New installs start with **Right-Click Lock** enabled by default. All other protections are off, letting you enable only the features you need. To configure additional protections, go to **Settings** in the Photolock app and explore the protection categories: Content Protection, Image Protection, Screen Capture, Bots & Crawlers, and Warnings. --- # How Protection Works > Understand what Photolock protects and how Source: https://help.pasilobus.com/photolock/how-protection-works App: Photolock Shopify App Store: https://apps.shopify.com/photolock App help: https://help.pasilobus.com/photolock Section: Getting Started Last updated: 2026-06-28 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) ## Protection Layers Photolock uses multiple layers of protection to prevent image and content theft: | Layer | What It Does | Example | |-------|-------------|---------| | **Input Blocking** | Intercepts keyboard and mouse actions | Blocks right-click, Ctrl+C, drag & drop | | **Visual Shields** | Adds invisible barriers over images | Image Shield serves a blank file on "Save As" | | **Watermarks** | Embeds marks on images | Invisible watermarks trace leaked screenshots | | **Detection** | Identifies suspicious tools and behavior | Blocks spy extensions like PPSPY | | **Warnings** | Deters theft with visible messages | Shows a short message at the bottom of the screen on right-click attempts | ## How Features Work Together Each protection feature operates independently — you can enable any combination. For example: - **Right-Click Lock** blocks the context menu, while **Image Shield** ensures that even if someone bypasses it, they download a blank image - **Screenshot Lock** blocks keyboard shortcuts, while **Invisible Watermark** marks any screenshots that slip through - **Smart Activation** keeps all your enabled protections dormant until suspicious behavior is detected, giving normal visitors an uninterrupted experience ## Your Store Always Keeps Working Protection only ever applies to your product photos. Photolock never blurs, hides or covers the whole store, and never blocks scrolling, menus, the cart, links or form fields. When a protection reacts (a screenshot shortcut, developer tools, a spy extension), it blurs or hides the product photos only, and messages appear as a small bar at the bottom of the screen. If the protection script ever fails to load or run, your store simply shows normally, and visitors with JavaScript turned off see the store as usual. ## What Protection Can and Cannot Prevent Photolock is highly effective at deterring casual image theft — the vast majority of attempts by store visitors. It blocks common actions like right-clicking, dragging, copying, and using keyboard shortcuts. However, no client-side protection can fully prevent a technically determined user from capturing content. Photolock's goal is to make theft significantly harder and less convenient, discouraging most visitors from attempting it. ## Theme Editor Behavior Protection is automatically disabled when you're editing your theme in the Shopify theme editor. This ensures you can customize your store without any interference. Protection only activates on your live store for real visitors. --- # Content Protection > Block right-clicks, copying, and file saving Source: https://help.pasilobus.com/photolock/content-protection App: Photolock Shopify App Store: https://apps.shopify.com/photolock App help: https://help.pasilobus.com/photolock Section: Features Last updated: 2026-06-28 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) ## Overview Content Protection blocks common ways visitors copy text and save pages from your store. These features are available on all plans. ## Full Page Right-Click Lock Disables the right-click context menu across your entire store — not just on images, but on all page content. This prevents visitors from accessing options like "Save As", "Copy", or "Inspect Element" through the context menu. Links and form fields keep their menu, so visitors can still open a page in a new tab or paste into the search box. When disabled, right-click is only blocked on images (via Image Protection). Enable this for broader coverage across all page content. ## Copy & Paste Lock Blocks keyboard shortcuts for copying page content: - **Ctrl+C / Cmd+C** (Copy) - **Ctrl+X / Cmd+X** (Cut) - **Ctrl+A / Cmd+A** (Select All) Typing, copying and pasting inside search boxes, newsletter and contact forms always works. This prevents visitors from selecting and copying your product descriptions, pricing, or other text content. ## File Save Lock Blocks the **Ctrl+S / Cmd+S** keyboard shortcut, preventing visitors from saving your page as an HTML file. Without this, a visitor could save the entire page — including images and text — to their computer. ## Enabling Content Protection 1. Open the Photolock app 2. Go to **Settings** > **Content Protection** 3. Toggle on the features you want 4. Click **Save** Changes take effect immediately on your live store. --- # Image Protection > Protect images with shields and source hiding Source: https://help.pasilobus.com/photolock/image-protection App: Photolock Shopify App Store: https://apps.shopify.com/photolock App help: https://help.pasilobus.com/photolock Section: Features Last updated: 2026-06-28 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) ## Overview Image Protection prevents visitors from downloading or saving your product images. The right-click and drag locks are on every plan, including Free. Image Shield, Invisible Watermark and Hide Images From Inspectors need the Pro plan or higher. Protection only ever touches your product photos: the rest of the store, its menus, cart and links keep working normally. ## Right-Click Lock Blocks the right-click context menu specifically on images, preventing access to "Save Image As" and similar options. It also works when the theme lays a button or link over the photo (for example a zoom button on the product gallery or a product card link). Right-clicking text, links and buttons elsewhere is left alone. This is the most common protection feature and is enabled by default on new installs. ## Drag & Drop Lock Prevents visitors from dragging images out of the browser window — a common way to quickly save an image to the desktop or into another application. ## Image Shield (Pro) Places an invisible transparent overlay on top of your images. When a visitor tries to "Save Image As", they download the transparent overlay instead of the actual product image. This works even if a visitor bypasses the right-click lock through browser developer tools, since the overlay sits on top of the real image in the page structure. ## Hide Images From Inspectors (Pro) Hides your product photos while a visitor has the browser's developer tools open, which is where image links are usually copied from. The photos come back as soon as developer tools close, and the rest of the page stays visible the whole time. Image addresses can't be removed from a web page entirely, so this is a deterrent rather than a lock. ## Enabling Image Protection 1. Open the Photolock app 2. Go to **Settings** > **Image Protection** 3. Toggle on the features you want 4. Click **Save** A section marked **Upgrade to Pro** needs the Pro plan or higher. --- # Screen Capture Protection > Block screenshots, printing, and detect focus loss Source: https://help.pasilobus.com/photolock/screen-capture App: Photolock Shopify App Store: https://apps.shopify.com/photolock App help: https://help.pasilobus.com/photolock Section: Features Last updated: 2026-06-28 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) ## Overview Screen Capture Protection deters screenshots and printing and reacts when visitors switch away from your store. These features need the Pro plan or higher. When one of them fires, only your product photos are blurred: the rest of the page stays sharp, and visitors can keep scrolling, clicking and shopping. ## Screenshot Lock Blocks common screenshot keyboard shortcuts on desktop computers: | Shortcut | Platform | |----------|----------| | **Ctrl+Shift+S** | Windows/Linux | | **Cmd+Shift+3/4/5** | macOS | | **Print Screen** | Windows | When a blocked shortcut is detected, the key combination is intercepted and your product photos blur for a moment, so a screenshot taken anyway doesn't show them clearly. A click brings them back straight away. **Note**: Screenshot Lock works on desktop browsers only, and only for the keyboard shortcuts above. Phone screenshots (hardware buttons) and separate screen-capture apps can't be blocked by any website; a visible watermark is the better deterrent there. ## Focus Lock Detects when the browser window loses focus — for example, when a visitor switches to another app or tab. This can indicate they're using screen capture tools or comparing your content with a competitor's store. While the window is out of focus your product photos are blurred, and they sharpen again as soon as the visitor comes back. Clicking into an embedded video, chat or Shop Pay window doesn't count as leaving. ## Printing Lock Blocks the browser's print function, preventing visitors from printing your pages or saving them as PDF files. When a visitor attempts to print, the print shortcut is blocked and a printed page comes out blank. ## Enabling Screen Capture Protection 1. Open the Photolock app 2. Go to **Settings** > **Screen Capture** 3. Toggle on the features you want 4. Click **Save** All Screen Capture features need the Pro plan or higher. --- # Watermarks > Add invisible and visible watermarks to images Source: https://help.pasilobus.com/photolock/watermarks App: Photolock Shopify App Store: https://apps.shopify.com/photolock App help: https://help.pasilobus.com/photolock Section: Features Last updated: 2026-06-28 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) ## Overview Watermarks add an extra layer of protection by marking your images — either visibly to deter copying, or invisibly to trace the source of leaked images. The Invisible Watermark needs the Pro plan or higher; the Visible Watermark needs the Max plan or higher. ## Invisible Watermark Adds a nearly invisible text overlay to your images containing a unique session identifier. The watermark is not noticeable during normal browsing, but it's captured in any screenshot or screen recording. If a watermarked image appears on another site, you can trace it back to the specific visitor session that captured it. This is particularly useful for: - Identifying which visitor leaked your product images - Building evidence for copyright takedown requests - Deterring theft when visitors know watermarks are present ## Visible Watermark Overlays a customizable text watermark on your product images on the storefront. This is a visual deterrent — visitors can see the watermark and know the images are protected. The text gets a soft outline so it stays readable on light and dark photos, and it shrinks to fit small product cards. The watermark is drawn over the image on the page; the image file itself isn't changed, so a copy fetched straight from its address has no mark. Pair it with the right-click lock and Image Shield. ### Customization Options | Option | Description | |--------|-------------| | **Watermark Text** | The text displayed on images (e.g., your store name or "Do Not Copy") | | **Position** | Where the watermark appears: Top Left, Top Right, Center, Center Diagonal, Bottom Left, Bottom Right | | **Size** | Font size in pixels | | **Color** | Hex color code for the watermark text | **Center Diagonal** places the watermark at an angle across the image, making it harder to crop out. ## Enabling Watermarks 1. Open the Photolock app 2. For the Invisible Watermark, go to **Settings** > **Image Protection** and switch it on in the **Image Shields** section 3. For the Visible Watermark, go to **Settings** > **Watermark**, switch it on and set the text, position, size, color and opacity; the live preview shows the result 4. Click **Save** --- # Warning Messages > Show warnings when protection is triggered Source: https://help.pasilobus.com/photolock/warning-messages App: Photolock Shopify App Store: https://apps.shopify.com/photolock App help: https://help.pasilobus.com/photolock Section: Features Last updated: 2026-06-28 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) ## Overview Warning Messages show alerts when visitors trigger protection features. Warnings act as a visible deterrent — letting visitors know the store is protected. Warning toggles are available on all plans. ## Right-Click Warning Shows a short message at the bottom of the screen when a right-click on an image is blocked. The message informs them that content is protected; it disappears by itself and never stops the visitor from browsing. This pairs with the Right-Click Lock to both block the action and explain why. ## Console Warning Displays a warning message in the browser's developer console. This targets technically inclined visitors who open developer tools to inspect or extract content. The message stays in the console: shoppers never see it on the page. When developer tools or a store-inspection extension hide your photos, the bar at the bottom of the page says only "Product photos are protected." in the shopper's language. ## Welcome Warning Shows a small copyright notice along the bottom of the page. Visitors learn that store content is protected without being stopped: they can keep shopping, close it with one tap, and it returns at most once every 30 days. While it is open, other short messages (right-click, screenshot) appear just above it rather than on top of it. ## Screenshot Warning Shows a short message at the bottom of the screen when a screenshot attempt is detected via keyboard shortcuts. This is independent of the Screenshot Lock — you can show the warning without blocking the keys, or block without showing the warning. Requires the Screenshot Lock to be enabled (Pro plan) for the detection to work. ## Focus Warning Merged into the Focus Lock in Screen Capture settings: while the visitor is away, product photos are blurred, and they sharpen when the visitor returns. Requires the Focus Lock (Pro plan). ## Customizing Warning Text Warning messages can be customized in different languages through the Translations feature. See the [Translations](https://help.pasilobus.com/configuration/translations) article for details. --- # Bots & Crawlers > Block spy extensions and image crawlers Source: https://help.pasilobus.com/photolock/bots-crawlers App: Photolock Shopify App Store: https://apps.shopify.com/photolock App help: https://help.pasilobus.com/photolock Section: Features Last updated: 2026-06-28 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) ## Overview Bots & Crawlers protection blocks automated tools and browser extensions that competitors use to spy on your store or scrape your images. These features require the Max plan. ## Hide Source Code Blocks the **Ctrl+U / Cmd+U** (view source) and developer-tools shortcuts (**F12**, **Ctrl+Shift+I / Cmd+Option+I**), and hides your product photos while developer tools are open. The rest of the page stays visible, and the photos come back when developer tools close. This makes it harder to extract image URLs from your page markup. ## Block Spy Extensions Detects and blocks popular competitor intelligence browser extensions: - **PPSPY** — analyzes store traffic, revenue, and best-selling products - **Koala Inspector** — inspects Shopify store themes, apps, and settings - **ShopHunt** — tracks competitor product changes and pricing When one of these extensions is detected, your product photos are blurred for that visitor and a short message explains why. The rest of the store keeps working. Ordinary extensions such as password managers, coupon finders and translators are not treated as spy tools. ## Crawler Blocking Controls which search engine and social media crawlers can index your images. This is useful if you want to prevent your product images from appearing in image search results or social media previews. | Crawler | What It Does | |---------|-------------| | **Google Image Crawler** | Prevents Google from indexing your images in Google Images | | **Bing Image Crawler** | Prevents Bing from indexing your images | | **Twitter Crawler** | Prevents Twitter/X from creating image previews when your URLs are shared | | **Pinterest Crawler** | Prevents Pinterest from saving or pinning your images | **Important**: Blocking crawlers affects your store's visibility in image search results and social previews. Only enable crawler blocking if preventing image indexing is more important than the traffic these sources provide. ## Enabling Bots & Crawlers Protection 1. Open the Photolock app 2. Go to **Settings** > **Bots & Crawlers** 3. Toggle on the features you want 4. Click **Save** --- # Smart Activation > Only activate protection when suspicious behavior is detected Source: https://help.pasilobus.com/photolock/smart-activation App: Photolock Shopify App Store: https://apps.shopify.com/photolock App help: https://help.pasilobus.com/photolock Section: Configuration Last updated: 2026-06-28 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) ## Overview Smart Activation keeps all your protection features dormant until suspicious behavior is detected. Normal visitors browse your store without any restrictions — locks only activate when needed. This feature needs the Pro plan or higher. ## How It Works With Smart Activation enabled, Photolock monitors for common theft indicators: - Right-click attempts on images - Copy/paste keyboard shortcuts - Drag and drop attempts - Other suspicious interactions When any of these actions are detected, all your enabled protections activate immediately for that visitor's session. Until then, the visitor experiences no restrictions. ## When to Use Smart Activation **Use Smart Activation when:** - You want to minimize any impact on the browsing experience for legitimate customers - Your store has accessibility requirements where always-on protection may interfere - You prefer a less aggressive approach that only responds to actual theft attempts **Use always-on protection (Smart Activation off) when:** - You want maximum protection from the first page load - Your images are high-value and you can't risk any unprotected window - You prefer visible deterrence (visitors immediately see protection is active) ## Enabling Smart Activation 1. Open the Photolock app 2. On the dashboard, find the **Smart Activation** section 3. Toggle it **On** 4. Click **Save** Smart Activation applies to all protection features you have enabled. You don't need to configure it per feature. --- # Rules > Exclude specific pages, markets, or customers from protection Source: https://help.pasilobus.com/photolock/rules App: Photolock Shopify App Store: https://apps.shopify.com/photolock App help: https://help.pasilobus.com/photolock Section: Configuration Last updated: 2026-06-28 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) ## Overview Rules let you control where and for whom protection is active. You can exclude specific products, collections, markets, or customer groups from protection. Rules require the Ultra plan. On a lower plan the whole Rules page is shown but locked: the switches, pickers and the market and customer choices can't be changed, and rules saved on an earlier plan don't run. ## Page Filtering Page filtering lets you exclude specific products or collections from protection. This is useful when you want certain pages to remain unprotected — for example, a product with images you want customers to share freely. ### Enabling Page Filtering 1. Go to **Settings** > **Rules** 2. Toggle on **Enable page filter** 3. Click **Save** ### Excluding Products 1. In the **Excluded Products** section, click **Add Products** 2. Use the Shopify product picker to select products 3. Selected products appear in the exclusion list Protection will be completely disabled on these product pages. ### Excluding Collections 1. In the **Excluded Collections** section, click **Add Collections** 2. Select the collections to exclude All products in excluded collections will be unprotected — both on the collection page and on individual product pages within that collection. ### Removing Exclusions Click the **X** icon next to any product or collection to remove it from the exclusion list and restore protection. ## Market Filter If your store serves multiple Shopify Markets (e.g., different countries or regions), you can limit protection to specific markets. ### Options | Setting | Behavior | |---------|----------| | **All markets** | Protection is active in every market (default) | | **Specific markets** | Protection only applies in the markets you select | ### Configuring Market Filtering 1. Go to **Settings** > **Rules** 2. Under **Market Filter**, select **Specific markets** 3. Click **Select markets** and choose the markets where protection should be active 4. Click **Save** Visitors browsing from markets not in your list will not see any protection. ## Customer Rules Control which customers are excluded from protection. This is helpful when you want to protect content from anonymous visitors but allow logged-in customers or wholesale buyers full access. ### Options | Setting | Behavior | |---------|----------| | **All visitors** | Protection applies to everyone (default) | | **Exclude logged-in customers** | Protection is disabled for any logged-in customer | | **Exclude customers with specific tags** | Protection is disabled for customers with matching tags | ### Using Customer Tags 1. Go to **Settings** > **Rules** 2. Under **Customer Rules**, select **Exclude customers with specific tags** 3. Enter tags separated by commas (e.g., `wholesale, vip, partner`) 4. Click **Save** Tags are case-insensitive — `Wholesale` and `wholesale` are treated the same. --- # Translations > Customize warning messages in different languages Source: https://help.pasilobus.com/photolock/translations App: Photolock Shopify App Store: https://apps.shopify.com/photolock App help: https://help.pasilobus.com/photolock Section: Configuration Last updated: 2026-06-28 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) ## Overview Translations let you customize warning messages in different languages for your store visitors. When a visitor's browser language or Shopify market language matches a configured language, they see warnings in their language. This feature is available on the Max plan and higher. ## Adding a Language 1. Open the Photolock app 2. Go to **Translations** in the navigation 3. Click **Add Language** 4. Select the language from the dropdown 5. Click **Save** The new language appears in your translations list with default English text that you can customize. ## Editing Warning Messages Each language has customizable text for every warning message the app displays: | Warning | When It Shows | |---------|---------------| | **Right-Click Warning** | When a visitor right-clicks | | **Console Warning** | In the browser developer console | | **Welcome Warning** | When the page loads | | **Screenshot Warning** | When a screenshot shortcut is detected | | **Focus Warning** | When the browser window loses focus | | **Printing Warning** | When a visitor tries to print | | **Mobile Warning** | On mobile right-click (long press) attempts | To edit: 1. Click on a language in the list 2. Update the message text for each warning type 3. Click **Save** ## How Language Matching Works Photolock matches the visitor's language based on their Shopify market or browser language settings. If a matching translation exists, that language is used. Otherwise, the default English messages are shown. ## Managing Languages From the Translations page, you can: - **Edit** any language to update its messages - **Delete** languages you no longer need - Add as many languages as your store supports --- # Temporarily Disabling Protection > Pause protection without uninstalling the app Source: https://help.pasilobus.com/photolock/disable-protection App: Photolock Shopify App Store: https://apps.shopify.com/photolock App help: https://help.pasilobus.com/photolock Section: Troubleshooting Last updated: 2026-06-28 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) There are times when you need your store to behave normally without protection getting in the way — taking your own product screenshots, letting a designer or developer work on your theme, recording a demo, or testing how a page behaves. Photolock can be turned off temporarily without uninstalling the app, so all of your settings stay exactly as you left them and protection returns the moment you switch it back on. ## Turn Protection Off Photolock runs through an app embed in your theme. Toggling that embed off pauses every protection feature at once: 1. Go to **Online Store** > **Themes** in your Shopify admin 2. Click **Customize** on your active theme 3. Click **App embeds** (the puzzle piece icon in the left sidebar) 4. Toggle **Photolock** **Off** 5. Click **Save** Protection stops immediately across your entire storefront. Your feature settings, rules, and watermark configuration are untouched — nothing is deleted. ## Turn Protection Back On When you're done, re-enable the embed: 1. Return to **Online Store** > **Themes** > **Customize** 2. Click **App embeds** 3. Toggle **Photolock** **On** 4. Click **Save** All of your previous settings take effect again right away. ## Disable on a Single Page Instead If you only need protection off for specific pages — rather than the whole store — leave the app embed on and use exclusion rules instead: - **Page Filtering** - Exclude individual products or collections from protection - **Customer Rules** - Skip protection for logged-in or tagged customers - **Market Filter** - Limit protection to specific markets This keeps the rest of your store protected while making an exception where you need it. Rules require the Ultra plan. ## A Few Things to Know - **The theme editor already disables protection** - Photolock is automatically off inside the Shopify theme customizer, so you can edit your theme without turning the embed off - **No need to uninstall** - Toggling the embed is faster than uninstalling and preserves all your settings - **Changes are instant** - There's no delay; protection follows the embed toggle as soon as you save --- # Protection Not Working > Fix issues where protection isn't active on your store Source: https://help.pasilobus.com/photolock/protection-not-working App: Photolock Shopify App Store: https://apps.shopify.com/photolock App help: https://help.pasilobus.com/photolock Section: Troubleshooting Last updated: 2026-06-28 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) ## Check the App Block The most common reason protection isn't working is that the app block isn't enabled on your theme. 1. Go to **Online Store** > **Themes** in your Shopify admin 2. Click **Customize** on your active theme 3. Click **App embeds** (puzzle piece icon) 4. Make sure **Photolock** is toggled **On** 5. Click **Save** You can also check your installation status from the Photolock app's **Settings** > **Installation** section. ## Theme Editor vs Live Store Protection is automatically disabled in the Shopify theme editor. This is intentional — it allows you to customize your store without interference. Always test protection on your live store or a theme preview, not in the editor. Attempts made in a theme preview are protected but not counted in your block totals. Only your published theme counts: attempts on a draft theme, or in its preview, are blocked but not counted, so a store testing on a draft sees 0 blocks. The dashboard says so under the block counts while they are 0. ## Check Feature Requirements Some features require specific plans: | Feature | Required Plan | |---------|--------------| | Content Protection (right-click, copy, save) | All plans | | Image Protection (right-click, drag & drop) | All plans | | Image Shield, Invisible Watermark, Hide Images From Inspectors | Pro | | Screen Capture (screenshot, focus, printing) | Pro | | Smart Activation | Pro | | Visible Watermark | Max | | Bots & Crawlers | Max | | Rules (page, market, customer exclusions) | Ultra | If a feature is grayed out with an **Upgrade to …** badge, the badge names the plan it needs. The dashboard's **Protections** count shows **not live yet** while the Photolock app embed is off in your published theme: the switches are on, but nothing runs on the storefront until the embed is on. ## Exclusion Rules If protection works on some pages but not others, check your Rules settings: 1. Go to **Settings** > **Rules** 2. Check if **Page Filtering** is enabled with excluded products or collections 3. Check if **Market Filter** is set to specific markets 4. Check if **Customer Rules** exclude logged-in or tagged customers ## Browser Extensions Some browser extensions can interfere with protection features. Ad blockers, developer tool extensions, or privacy extensions may override Photolock's protections. This only affects the visitor using that specific extension — other visitors are still protected. ## Mobile Limitations - **Screenshot Lock** works on desktop only — mobile screenshots use hardware buttons that web apps cannot intercept - **Right-Click Lock** works on mobile as a long-press block - All other protections work on both desktop and mobile ## Smart Activation If you have Smart Activation enabled, protection is dormant until a suspicious action is detected. During normal browsing, it may appear as if protection isn't active. Try right-clicking on an image — protection should activate immediately after the first attempt. --- # Installation > Install the app and activate it on your theme Source: https://help.pasilobus.com/product-options/installation App: Product Options (on the Shopify App Store as "Pasilobus Product Options") Shopify App Store: https://apps.shopify.com/product-options-pasilobus App help: https://help.pasilobus.com/product-options Section: Getting Started Last updated: 2026-08-10 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Getting Product Options running on your store takes just a few minutes. Install from the Shopify App Store, then follow the guided setup wizard to add the options block to your theme—no code required. ## Installing from the App Store 1. Visit the [Product Options](https://apps.shopify.com/product-options-pasilobus) app listing on the Shopify App Store 2. Click **Add app** to begin the installation 3. Follow the prompts to complete installation ## Theme Setup Wizard After installation, the theme setup wizard guides you through activating Product Options on your storefront: 1. **Choose theme** - Select which theme to install on 2. **Enable app embed** - Activates Product Options functionality 3. **Add options block** - Places the options form on product pages The wizard handles all theme integration automatically. ## Adding the App Block The Product Options block displays your custom options on product pages: 1. Go to **Online Store > Themes > Customize** 2. Select **Products > Default product** from the page dropdown 3. In the product section, click **Add block** 4. Choose **Product Options** from the Apps list 5. Drag to position (typically below variant selector, above Add to Cart) 6. Click **Save** ## Verifying Installation To confirm Product Options is properly installed: 1. Create an option group with at least one option 2. Assign a product to the option group 3. Open that product page in a new browser tab 4. Look for your custom options on the page If you don't see the options, check the [Options Not Showing](https://help.pasilobus.com/troubleshooting/options-not-showing) troubleshooting guide. --- # How Product Options Works > Understand the key components of product customization Source: https://help.pasilobus.com/product-options/how-product-options-works App: Product Options (on the Shopify App Store as "Pasilobus Product Options") Shopify App Store: https://apps.shopify.com/product-options-pasilobus App help: https://help.pasilobus.com/product-options Section: Getting Started Last updated: 2026-03-19 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Product Options lets you add custom fields to your products—from simple dropdowns to file uploads. Customers see these options on product pages and their selections carry through to cart and checkout. Understanding how the system works helps you create better customization experiences. ## The Product Options System The app uses a simple hierarchy to organize customization: - **Option Groups** contain one or more options - **Product Options** are the individual fields customers interact with - **Option Values** are the choices within multi-select options This structure lets you create a set of options once and apply them to many products. ## Option Groups Think of option groups as templates. Create a "Personalization" group with text input for engraving, then apply it to all products that offer engraving. Update the group once, and all assigned products reflect the change. Groups can apply to: - **All products** - Every product in your store shows these options - **Specific products** - Only selected products show these options ## Product Options Options are the actual form fields customers see. Each option has: - **Name** - Internal identifier for your reference - **Label** - What customers see on the storefront - **Type** - Dropdown, text input, checkbox, swatches, and more - **Values** - The available choices (for multi-select types) ## How Options Appear On your storefront, options display as form fields on product pages. Customers make their selections before adding to cart. Their choices appear in the cart, checkout, and order confirmation—making fulfillment straightforward. ## Customer Journey 1. Customer visits a product page 2. Custom options appear as form fields 3. Customer makes selections (fills text, picks colors, uploads files) 4. Options are validated (required fields must be filled) 5. Customer adds to cart with selections attached 6. Selections appear in cart and checkout 7. Order includes all customization details for fulfillment --- # Dashboard Overview > Navigate the app and understand your metrics Source: https://help.pasilobus.com/product-options/dashboard-overview App: Product Options (on the Shopify App Store as "Pasilobus Product Options") Shopify App Store: https://apps.shopify.com/product-options-pasilobus App help: https://help.pasilobus.com/product-options Section: Getting Started Last updated: 2026-08-09 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) The Product Options dashboard is your command center. At a glance, see how many options you've created, access your option groups, and navigate to settings. Use the sidebar to manage all aspects of your product customization. ## Dashboard Metrics The dashboard displays statistics about your Product Options setup: - **Option Groups** - Total groups you've created - **Product Options** - Total individual options across all groups - **Products** - How many products have options assigned ## Quick Actions From the dashboard, you can: - **Create Option Group** - Start building a new set of options - **View All Groups** - Browse and manage existing groups - **Access Settings** - Configure translations, appearance, and more ## Navigating the App The sidebar provides quick access to all sections: - **Dashboard** - Overview and metrics - **Option Groups** - Create and manage groups - **Galleries** - Manage file galleries for upload options - **Settings** - Configure storefront appearance, translations - **Plans** - View and upgrade your subscription ## Understanding Plan Features Your plan determines which features are available: - **Free** - Every option type, unlimited options and option sets, and conditional logic - **Pro** - Adds prices on options and quantity settings - **Max** - Adds cart and checkout wording, file galleries, and customer and market visibility Features locked by your plan appear with an upgrade prompt. You can still see and configure them, but they won't activate on your storefront until you upgrade. If you move to a smaller plan, your options and settings are kept, and the features it doesn't include stop on your storefront within a few minutes. --- # Option Groups > Organize options into reusable groups Source: https://help.pasilobus.com/product-options/option-groups App: Product Options (on the Shopify App Store as "Pasilobus Product Options") Shopify App Store: https://apps.shopify.com/product-options-pasilobus App help: https://help.pasilobus.com/product-options Section: Features Last updated: 2026-08-09 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Option groups are containers that hold your product options. Instead of adding options to each product individually, you create a group once and assign it to products. This makes managing options across your catalog efficient and consistent. ## Why Use Option Groups Groups provide several benefits: - **Efficiency** - Create once, apply to many products - **Consistency** - All assigned products share the same options - **Easy updates** - Change the group, all products update - **Organization** - Keep related options together For example, create a "Gift Options" group with gift wrapping and a message field, then apply it to all giftable products. ## Creating an Option Group 1. Go to **Option Groups** in the app 2. Click **Create** (or **Create Option Group** from empty state) 3. Enter a group name 4. Choose your application scope 5. Click **Save** The group is created empty—you'll add options next. ## Application Scope Choose which products receive the group's options under **Apply to**: - **Specific products** - Only selected products show these options. Good for category-specific customization like engraving on jewelry or custom sizing on furniture. - **Products not in other groups** - A default group that covers any product not assigned to another option group. - **All products** - Every product in your store shows these options. Good for universal options like gift wrapping or rush shipping. - **Products in a collection / with a tag / of a type / by vendor** - Target products by an attribute they share, matched live and case-insensitively on the storefront. See the Product Targeting article for details. ## Managing Products For specific product targeting: 1. Open the option group 2. Click the **Products** link 3. Use the product picker to add products 4. Remove products by clicking the remove icon You can search and filter to find products quickly. ## Organizing Groups Keep your groups organized by using clear, descriptive names: - "Personalization Options" for engraving and monograms - "Gift Services" for wrapping and messages - "Rush Shipping" for expedited delivery options - "Custom Sizing" for made-to-order products This makes it easy to find and manage groups as your catalog grows. --- # Option Types > Choose the right input type for each option Source: https://help.pasilobus.com/product-options/option-types App: Product Options (on the Shopify App Store as "Pasilobus Product Options") Shopify App Store: https://apps.shopify.com/product-options-pasilobus App help: https://help.pasilobus.com/product-options Section: Features Last updated: 2026-08-10 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Product Options supports over 20 option types organized into categories. Each type controls how customers interact with a particular customization field on your product page. ## Selection Options These types let customers choose from predefined values you create: - **Dropdown** - A collapsed list that expands when clicked. Best for many choices (5+) where you want to save space on the page. - **Radio Button** - All choices visible at once, customer picks one. Best for 2-4 important choices you want customers to see immediately. - **Checkbox** - Multiple checkboxes where customers can select one or more values. Best for add-ons like gift wrapping, insurance, or multiple toppings. You can limit how many choices customers pick — see Checkbox Selection Limits below. - **Swatches** - Visual selection using colors or images. Best for color options, patterns, or materials where seeing is important. - **Button** - Clickable buttons for each value. Best for sizes, styles, or any option where you want a clean, tappable selection. - **Image Dropdown** - A dropdown with image thumbnails next to each option. Best for showing visual previews while keeping a compact layout. - **Color Dropdown** - A dropdown with color swatches next to each option. Best for color selections where you want to combine a color preview with text labels. - **Product Collection** - A picker that lists every product from a Shopify collection with thumbnails and titles. Customers pick a product, then pick a variant from a cascading dropdown. The chosen variant becomes a priced add-on in the cart at its real price. Best for "build your own bundle" or "pick from this catalog" flows where you don't want to maintain option values manually. ## Checkbox Selection Limits Checkbox options can require a minimum number of selections, cap the maximum, or both. This is useful for offers like "pick exactly 3 toppings" or "choose up to 2 free samples". When editing a checkbox option, open **Field Settings** and set: - **Min Selections** - The fewest choices a customer must check. Leave blank for no minimum. - **Max Selections** - The most choices a customer can check. Leave blank for no maximum. On your storefront, the limits are enforced automatically: - **At the maximum** - Once a customer checks the maximum number of choices, the remaining unchecked choices are disabled. Unchecking one re-enables them. - **Below the minimum** - Add to cart is blocked and the customer sees a clear message, such as "Please select at least 2 options for 'Toppings'", shown both under the option and in the alert. - **Optional options stay optional** - The minimum applies once the customer checks at least one choice. If the option is not required and the customer leaves it untouched, they can still add to cart. When the option is required, the minimum always applies. ## Text & Input Options These types let customers enter their own values: - **Text Input** - Single-line text field. Best for short entries like names, initials, or short messages. - **Paragraph Text** - Multi-line text area. Best for longer entries like custom messages, special instructions, or dedications. - **Size (W × H)** - Two measurement fields priced by the area they describe. The customer types a width and a height, and the app charges your rate for each square unit. Best for anything cut to order: panels, glass, fabric, signage, rugs. - **Number** - Numeric input only. Best for quantities, dimensions, or other number-based entries. - **Email** - Validates email format. Best when you need a recipient's email address. - **Telephone** - Phone number input. Best for contact information or delivery coordination. ## Size Options A Size option asks for a width and a height and charges by the area. Under **Field Settings** you set only what is particular to a size: - **Unit** - What the customer measures in: inches, feet, centimetres or metres. - **Smallest and largest size allowed** - Optional bounds. A size outside them can't be added to the cart, and the customer is told why. The rate is the option value's price, set exactly the way every other option sets a price — so a Size option can be free, priced by hand, or priced from a product you already sell: - **Leave the price empty** - nothing is charged. The customer measures, the size travels with the order, and you know how big to make it. Good when the size affects the work but not the price. - **Type a price** - it is the price per square unit. At $4.00 with the unit set to feet, a 4 × 3 ft panel is $48.00. - **Assign a product** - the app takes the rate from that product, covered below. Customers see the maths before they add anything: **13 sq ft (rounded up from 12.6) × $4.00 = $52.00**. With no price they simply see **13 sq ft**. **Areas round up to the next whole unit.** A Shopify variant's price is fixed, so a part-unit charge has nowhere to live — the area is charged in whole units and the customer sees the rounding stated. Choose your unit with that in mind: pricing per square foot charges a 12.6 sq ft panel as 13, while pricing the same panel per square inch is exact to within a square inch but shows a large number of units in the cart. ## Pricing a Size From a Product You Sell If you already sell the material as a product, assign it to the option's value instead of typing a price. The app then takes the rate and the unit from Shopify, so you maintain them in one place and the cart line is your real product — with its own inventory, tax and reporting. This needs the product to be **priced per unit** in Shopify, using the unit price fields on the variant: - **Total amount** - how much is in the product you sell - **Base measure** - the unit you want it compared against The two must match for a Size option. A product whose total amount is 1 m² against a base measure of 1 m² *is* one square metre, so the app can sell thirteen of them as 13 m². A 5 m² roll shows the same "$27/m²" on your storefront but is a package: thirteen of those would be 65 m². The app refuses that one and tells you when you save. Square feet and square metres are the only area units Shopify supports here. Pricing per square inch or centimetre works, but only by typing the price. ## Advanced Options These types offer specialized input controls: - **Color Picker** - A full color picker with hex value output. Best for custom color selections beyond predefined swatches. - **Date** - Date picker calendar. Best for delivery dates, event dates, or scheduling. - **Date & Time** - Date and time picker. Best when you need both a date and a specific time (e.g., pickup time). - **Switch / Toggle** - An on/off toggle switch. Best for simple yes/no choices like "Add gift wrap?" or "Include batteries?". - **Range Slider** - A slider that customers drag to select a value within a range. Best for dimensions, intensity levels, or any numeric range. - **File Upload** - Lets customers attach files. Best for custom artwork, photos for printing, or documents. - **File Upload with a gallery** - A File Upload option can carry a gallery of images you uploaded in advance, so the customer either picks one of yours or uploads their own — and the two can be priced differently. Galleries require the Max plan. See the Image Galleries article. ## Display Only Options These types don't collect customer input — they help organize and format your option form: - **Heading** - Adds a section heading to visually separate groups of options. - **Paragraph** - Adds descriptive text or instructions between options. - **Divider** - Adds a horizontal line to visually separate sections. - **Spacing** - Adds vertical space between options. - **HTML Content** - Renders custom HTML content within the option form. ## Other - **Hidden** - Not visible to customers but included in orders. Best for internal tracking, metadata, or values set by conditional logic. ## Choosing the Right Type - **Number of choices** - Few options? Use radio buttons or buttons. Many options? Use dropdown. - **Visual importance** - Need to show colors/patterns? Use swatches. Need image previews? Use image gallery or image dropdown. - **Free-form input** - Customer provides text? Use text input types. - **Validation needs** - Need specific formats? Use email, telephone, or number. - **File requirements** - Customer uploads their own file? Use file upload. Customer picks from your images? Use image gallery. - **Simple yes/no** - Use switch/toggle or checkbox. --- # Product Collection Option > Let customers pick a product (and variant) from a Shopify collection as an option Source: https://help.pasilobus.com/product-options/product-collection App: Product Options (on the Shopify App Store as "Pasilobus Product Options") Shopify App Store: https://apps.shopify.com/product-options-pasilobus App help: https://help.pasilobus.com/product-options Section: Features Last updated: 2026-07-13 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) The Product Collection option type lets customers pick any product from a Shopify collection as a customization choice — without you having to maintain option values manually. The collection's products and variants are pulled automatically, so when you add or remove products from the collection, the option updates with the next sync. This is ideal for "pick a complementary product" or "build your own bundle" flows. ## When to use it Use Product Collection instead of a regular Dropdown when: - The list of choices is long enough that maintaining option values by hand is painful - The choices are real Shopify products and you want to use their actual prices, inventory, and variants - You want customers to see a product image and title for each choice instead of just text - The selection should appear in the cart as a real product line item, not a custom property ## Setting it up When creating or editing an option, choose **Product Collection** as the type. The values editor disappears and a single setting appears: - **Source collection** - click **Select collection** and pick the Shopify collection whose products should populate the picker. The picker uses the standard Shopify resource picker. - **Hide out-of-stock products** - when on, products whose variants are all unavailable are filtered out of the picker entirely. When off (default), unavailable products show grayed out and can't be selected. That's it. There are no manual option values, no per-value images, and no pricing fields. Prices come from each variant directly. ## How it looks on the storefront Customers see a styled dropdown showing each product's thumbnail and title. Clicking opens a scrollable list of all products in the collection. After picking a product: - If the product has one variant, it's auto-selected and the variant dropdown is hidden - If the product has multiple variants (size, color, panel count, etc.), a second native dropdown appears for variant selection — pre-filled with the first available variant. Customer can change it. The selected variant is treated as a priced add-on, exactly like any other priced option. ## Cart behavior When the customer adds to cart, the selected variant becomes a separate line item — same as a Dropdown option with a priced value. All other configuration options on the page apply as line-item properties. If you've enabled **Merge into main product** on the option, the variant line item is bundled with the main product in cart via the Cart Transform Function, so customers see one merged line. The variant's price, inventory, and tax behavior come from Shopify directly — there's no separate pricing setup in the app. ## How it stays in sync Collection contents change automatically. The product list refreshes when: - A product's price, title, image, or inventory changes (via the existing `products/update` webhook) - The collection's product membership changes (via the `collections/update` webhook) You don't need to manually re-save the option after changing products in the collection. ## Limitations - The picker fetches up to 250 products at a time. Collections larger than that will only show the first 250 — consider splitting into smaller curated collections. - Each product can have up to 100 variants in the picker. - Conditional logic that triggers on this option treats the variant title as the value (e.g., "Hat – Small"). --- # Option Values & Pricing > Set up choices and additional pricing Source: https://help.pasilobus.com/product-options/option-values App: Product Options (on the Shopify App Store as "Pasilobus Product Options") Shopify App Store: https://apps.shopify.com/product-options-pasilobus App help: https://help.pasilobus.com/product-options Section: Features Last updated: 2026-08-10 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Option values are the choices within selection-type options. Each value can have its own price, image, and linked product. Setting up values correctly ensures customers see the right choices and pricing. ## Adding Option Values For dropdown, radio button, checkbox, and swatch options: 1. Create or edit an option 2. In the **Option Values** section, click **Add value** 3. Enter the value name (what customers see) 4. Repeat for all choices Values appear in the order you add them. Drag to reorder if needed. ## Setting Prices Every value has a **Price** field that is always editable. To charge extra for a value, simply type the amount: 1. In the **Pricing Settings** section, find the value 2. Type the add-on amount in the **Price** field (for example, 5.00) 3. Click **Save** The app handles the rest automatically: - **Add-on variant created for you** - The app creates a purchasable variant on a hidden, app-managed product called "Add-ons" and assigns it to the value. The variant is titled after your value (for example, "Gift Wrap (+$5.00)") and uses the value's image, so customers see a presentable line in cart, checkout, and on their order — never an internal product name. - **Edits update in place** - Change the price later and the app updates that same variant's price and title. No duplicate variants accumulate over time. - **Type 0 to remove a price** - Entering 0 clears the price and detaches the assigned variant from the value. After saving, you stay on the option form and a confirmation toast appears. The price displays next to the value name on the storefront, and when a customer selects the value, the add-on is charged automatically at checkout. **Note:** Pricing features require the Pro plan or higher. ## Using Your Own Products Instead of typing a price, you can link a value to a product or variant that already exists in your catalog: 1. Click **Select price** for the value 2. Use the product picker to find and select a product 3. Choose the specific variant if applicable 4. The product's price and image are linked to the value This is useful when the add-on is a real product you also sell on its own, or when you want the value's price to stay in sync with your catalog. **Editing the price of a linked product:** If you type a new amount in the **Price** field of a value that uses one of your own variants, the app updates that variant's price in your Shopify catalog — the change applies everywhere that variant is sold. Before applying it, an inline warning shows how many other option values share the same variant. Click **Update** to confirm the change, or **Cancel** to keep the current price. ## Value Images Any value can carry an image, not just swatches. Click the dashed image square on the value and pick a file from your computer. Square images work best; the storefront crops to a square and shows them at 75 pixels by default. Where the image appears depends on the option: - **Swatches and colour or image dropdowns** - the image *is* the choice, shown in the picker itself - **Checkbox and radio lists** - one image per row, at the right-hand edge of the option - **Buttons** - no image; a button is already the thing being chosen, so a picture on it turns a row of buttons into something else - **Everything else** - a single image in a column beside the option, which swaps as the customer changes their selection In every case the image sits on the same line down the page, so a product page with several options reads as one column of choices and one column of pictures rather than pictures scattered at different widths. ## Showing Value Images on the Storefront **Show the value's image** in the **What customers see** section controls whether those images reach the storefront. It is **on by default** — most stores that upload an image want it seen — and the row only appears once at least one value on the option has an image, since there is nothing to decide before that. Turn it off when the image is for your reference rather than the customer's, or when the picker already shows it and a second copy beside the option is redundant. An option whose selected value has no image shows nothing and gives the space back to the field, so leaving it on costs nothing. On a **File Upload** option this setting is worded differently — *Show the image you added* — because it governs the picture you attached to the value, not the customer's file. Their upload always previews, whatever this is set to. ## Default Value Selection Pre-select a value for customers: 1. Scroll to **Default Selection** in the option form 2. Choose which value should be pre-selected 3. Customers can still change their selection Leave empty to require customers to make an active choice. ## Prices That Follow a Measurement If a value charges through one of your own products, and that product is priced per unit in Shopify, the option says so too. A value linked to acrylic sold at $27 per square metre shows **+$27.00/m²** on the storefront rather than a bare **+$27.00** — in the option, in the cart and everywhere else the price appears. Nothing to set up here: it comes from the unit price fields on the variant, so it is yours to change in Shopify and it disappears from the option if you turn it off there. This is the same information EU, UK and German price-indication rules require you to show on goods sold by weight, volume, length or area. ## Hiding Prices If you don't want customers to see additional charges: 1. In **Pricing Settings**, enable **Hide Prices from Customers** 2. Prices still apply at checkout, but aren't displayed on product pages This is useful for psychological pricing or when price differences might discourage selection. --- # Quantity Settings > Control how option quantities work Source: https://help.pasilobus.com/product-options/quantity-settings App: Product Options (on the Shopify App Store as "Pasilobus Product Options") Shopify App Store: https://apps.shopify.com/product-options-pasilobus App help: https://help.pasilobus.com/product-options Section: Features Last updated: 2026-03-19 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Add-ons are charged for every item ordered. A $10 product with a $5 add-on costs $15 each, so a shopper who buys 2 pays $30. The product page, the cart and checkout always show the same total. ## Quantity Settings By default an add-on goes with each item and no extra field is shown. Turn on **Enable quantity** on an option to change how many of the add-on go with each item: - **Customer chooses how many** - A quantity picker appears with the option. A shopper who picks 3 gets 3 of the add-on with each item, so 2 items with 3 add-ons each is 6 add-ons. - **Match the product's quantity** - One add-on per item, with no field shown. This is the same as leaving quantity off. - **A fixed number** - The same number of add-ons with each item, for example 4 buttons per shirt. No field is shown. ## Splitting the Quantity Across Options With **Customer chooses how many**, you can turn on **Counts toward the product quantity**. The pickers on those options then share out the order rather than multiplying it: 150 black and 100 red for an order of 250. Add to cart waits until they add up, and each add-on is charged for the number picked. ## Configuring Quantity 1. Edit an option 2. Find the **Quantity** card 3. Turn on **Enable quantity** and choose a mode 4. For a fixed number, enter it 5. Save the option **Note:** Quantity settings and prices on options require the Pro plan or higher. ## Show the Picker on Values That Cost Nothing With **Match the product's quantity** or **A fixed number**, you can choose whether the quantity picker shows on values that cost nothing. This is useful when you need the quantity for fulfillment even without a charge. --- # Conditional Logic > Show or hide options based on other selections Source: https://help.pasilobus.com/product-options/conditional-logic App: Product Options (on the Shopify App Store as "Pasilobus Product Options") Shopify App Store: https://apps.shopify.com/product-options-pasilobus App help: https://help.pasilobus.com/product-options Section: Features Last updated: 2026-03-19 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Conditional logic shows or hides options based on other selections. Create dynamic forms that adapt to customer choices — showing relevant options while hiding irrelevant ones for a cleaner, more intuitive experience. ## What is Conditional Display Conditional display lets you set rules like: - Show "Engraving Text" only when "Add Engraving" is checked - Show "Gift Message" only when "Gift Wrap" is selected - Show specific size options only for certain colors - Show a date picker only when "Schedule Delivery" is toggled on This keeps your forms focused and avoids overwhelming customers with irrelevant fields. ## Setting Up Conditions 1. Edit the option you want to conditionally show or hide 2. Scroll to **Conditional Display** and toggle **Add Conditions** 3. Click **Add Condition** 4. Select which option the condition depends on 5. Choose the operator 6. Enter or select the value to match (if applicable) 7. Set the **Visibility Action** — whether conditions should show or hide the option 8. Save ## Condition Types Conditions can be based on two sources: - **Other Option** - Trigger based on what a customer selects in another option within the same group - **Shopify Variant** - Trigger based on the selected Shopify product variant (e.g., show different options depending on the Size or Color variant) ## Condition Operators - **Is equal to** - Matches when the other option's value exactly equals your specified value - **Is not equal to** - Matches when the value does NOT equal your specified value - **Is filled** - Matches when the customer has entered any value (not empty) - **Is empty** - Matches when no value has been entered - **Is checked** - Matches when a checkbox or toggle is turned on - **Is unchecked** - Matches when a checkbox or toggle is turned off - **Is in list** - Matches when the value is one of several comma-separated values ## Visibility Action Choose what happens when conditions are met: - **Show when conditions are met** - The option starts hidden and appears only when the condition is satisfied - **Hide when conditions are met** - The option starts visible and disappears when the condition is satisfied ## Multiple Conditions Add multiple conditions and choose how they combine: - **All conditions must be met (AND)** - Every condition must be true for the action to trigger - **At least one condition must be met (OR)** - Any single condition being true triggers the action ## Example Workflows **Engraving Options:** 1. Switch: "Add Engraving?" 2. Text Input: "Engraving Text" — shows when "Add Engraving" is checked 3. Dropdown: "Font Style" — shows when "Add Engraving" is checked **Gift Services:** 1. Checkbox: "This is a gift" 2. Dropdown: "Gift Wrap Style" — shows when "This is a gift" is checked 3. Paragraph Text: "Gift Message" — shows when "This is a gift" is checked **Variant-Based Options:** 1. When Shopify variant "Size" equals "Custom" → show "Custom Width" and "Custom Height" number fields ## Preview The option group preview in the sidebar reflects conditional logic in real time. When you interact with options in the preview, dependent options appear and disappear just as they would on your storefront. ## Plan Requirements Conditional logic is included on every plan, Free included. --- # Cart & Checkout Display > Configure how options appear in cart and checkout Source: https://help.pasilobus.com/product-options/cart-checkout-display App: Product Options (on the Shopify App Store as "Pasilobus Product Options") Shopify App Store: https://apps.shopify.com/product-options-pasilobus App help: https://help.pasilobus.com/product-options Section: Features Last updated: 2026-03-19 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Cart and checkout display settings control how customer selections appear after they add to cart. By default, all option selections are shown as line item properties in cart and checkout. You can customize this behavior per option. ## How It Works By default, when a customer selects an option value (e.g., picks "Red" for a Color option), that selection appears in the cart and checkout as a line item property like "Color: Red". This helps customers verify their choices and helps your team fulfill orders accurately. The selection appears in: - Shopping cart - Checkout page - Order confirmation email - Order details in Shopify admin ## Hiding Selections from Cart & Checkout If you don't want a particular option's value to appear in cart and checkout: 1. Edit the option 2. Open **Cart & Checkout** and toggle **Customize** 3. Check **Hide in cart & checkout** 4. Save the option This is useful for options that are purely visual (like dividers or headings) or for internal-use options where the selected value isn't meaningful to the customer. ## Custom Display Labels Change how option names appear in cart and checkout: 1. Edit an option 2. Open **Cart & Checkout** and toggle **Customize** 3. Enter a label in **Cart/checkout label** 4. Leave empty to use the option name Examples: - Option name "engraving_text" → Cart label "Engraving" - Option name "wrap_style" → Cart label "Gift Wrap" This creates cleaner, customer-friendly display without changing your internal naming. ## Merge to Product For priced options, choose whether they appear as separate line items or merge into the main product: - **Enabled (default, recommended)** - Priced options merge into the main product. Customers see one line with the combined price and the choices they made, and can't remove a paid add-on on its own. Removing the line removes the product and its add-ons together. - **Disabled** - Priced options appear as separate cart lines. Customers see the main product plus each add-on with its own price. With the checkout rule on (see below), a customer who removes the product but leaves its add-on is asked to remove the add-on before paying. Merging is done by the app's cart transform, which the app switches on for your store by itself when you open it. To change it for an option, edit the option and use **Keep add-ons on the product's cart line** in the Display section. It's available on every plan. ## Checkout Rule for Required Options Required options are checked on the product page. A customer can still skip them by adding the product another way, for example a quick add button on a collection page or an add-to-cart link. The checkout rule closes that gap: at checkout, it stops the order and asks the customer to choose the options on the product's page. It applies to products you assigned to an option set yourself, when every option set on that product has a required option that's always shown. It also stops checkout when a paid add-on is left in the cart without its product. To turn it on, go to **Settings > Checkout** in Shopify, find **Checkout rules**, add **Product Options required choices** and turn it on. The **Extensions** page in the app links there. ## Plan Requirements Hiding options and renaming them for the cart and checkout needs the Max plan. Merging add-ons into the product line and the checkout rule are on every plan. --- # Image Galleries > Let customers choose from pre-uploaded images Source: https://help.pasilobus.com/product-options/file-galleries App: Product Options (on the Shopify App Store as "Pasilobus Product Options") Shopify App Store: https://apps.shopify.com/product-options-pasilobus App help: https://help.pasilobus.com/product-options Section: Features Last updated: 2026-08-10 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Image galleries let customers choose from images you've uploaded in advance. Instead of asking customers to upload their own files, you provide a curated set of images they can browse and select — perfect for clip art, monogram styles, design templates, or pattern selections. ## How Image Galleries Work A gallery is a collection of images you manage in the app. You attach one to a **File Upload** option, and the shopper gets two buttons side by side: one to pick from your gallery, one to upload a file of their own. You can price the two differently — a gallery design included, their own artwork for a setup fee, for instance. So a gallery isn't a separate option type. It's a setting on a File Upload option, which is what lets a shopper choose *your* image or *their* image in the same field. ## Managing Galleries Galleries are managed from **Settings > Galleries**: 1. Go to **Settings** in the app sidebar 2. Click **Galleries** 3. Click **Create Gallery** and give it a name 4. Upload images by dragging or clicking to select 5. Optionally add tags to images for filtering You can add, remove, or replace images at any time. Changes are reflected immediately on your storefront. ## Organizing with Tags Add tags to gallery images for filtering: - Click an image in the gallery - Add one or more tags (e.g., "sports", "floral", "holiday") - When attaching a gallery to an option, enter tags in the **Filter by Tags** field to show only matching images This lets you reuse one large gallery across multiple options, showing only the relevant images for each. ## Attaching a Gallery to an Option 1. Create or edit an option and choose **File Upload** as the type 2. In the **File gallery** card, turn **Enable** on 3. Select the gallery to use 4. Optionally enter tags to show only part of it 5. Choose whether gallery picks should add cost 6. Save the option On the product page the shopper sees your gallery button beside the upload button, and the picture they choose carries through to the cart and the order. ## Gallery Pricing - **With pricing** - a gallery pick can add to the price, like any other option - **No additional price** - check "No Additional Price for Gallery Images" so picking from your gallery is free even when uploading their own file is not. This is the usual setup: your designs included, their artwork charged. ## Plan Requirements Image galleries require the Max plan. --- # Product Targeting > Control which products show your options Source: https://help.pasilobus.com/product-options/product-targeting App: Product Options (on the Shopify App Store as "Pasilobus Product Options") Shopify App Store: https://apps.shopify.com/product-options-pasilobus App help: https://help.pasilobus.com/product-options Section: Features Last updated: 2026-08-09 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Product targeting controls which products display your option groups. Apply options to your entire catalog or select specific products—giving you flexibility in how customization is offered across your store. ## Application Scope When creating or editing an option group, choose a scope under **Apply to**: - **Specific products** - Only products you select show these options - **Products not in other groups** - A default group that applies to any product not covered by another option group - **All products** - Every product in your store shows these options - **Products in a collection** - Products in a Shopify collection you choose - **Products with a tag** - Products carrying a tag you enter - **Products of a type** - Products matching a product type you enter - **Products by vendor** - Products from a vendor you enter ## Apply to All Products Use this when options should appear universally: - Gift wrapping available on everything - Rush shipping for all orders - Terms acceptance checkbox All products automatically include the group's options. New products added to your store will also show these options. ## Specific Product Selection Use this when options only apply to certain products: - Engraving on jewelry only - Custom sizing on furniture - Personalization on gifts You manually select which products receive the options. ## Targeting by Collection, Tag, Type, or Vendor Instead of picking products one by one, target them by an attribute they already share: - **Products in a collection** - Click **Select collection** and pick a collection with the collection picker. Every product in that collection shows the group's options. - **Products with a tag** - Enter a tag in the **Tag** field. Any product carrying that tag matches. - **Products of a type** - Enter a product type in the **Product type** field. - **Products by vendor** - Enter a vendor name in the **Vendor** field. Matching happens live on the storefront against the product being viewed, and it's case-insensitive — "Gifts" matches "gifts". If you add a tag to a product, change its type or vendor, or add it to the targeted collection, it starts showing the options immediately. No re-sync is needed, and removing the attribute stops the options just as quickly. The option groups list shows the chosen criterion in the scope column (for example, the collection name or the tag), so you can see each group's targeting at a glance. When you export option groups, the targeting settings are included, and importing restores them. ## Using the Product Picker For specific product targeting: 1. Open the option group 2. Click the **Products** link (or the product count) 3. Click **Add Products** 4. Search or browse to find products 5. Select products to add 6. Click **Add** to confirm Products immediately start showing the group's options. ## Removing Products To remove a product from an option group: 1. Open the option group's products list 2. Find the product to remove 3. Click the remove icon 4. Confirm removal The product no longer shows those options. ## Best Practices - **Start specific, expand later** - It's easier to add products than remove them. Start with specific targeting and expand if needed. - **Use collections, tags, types, or vendors** - If your catalog is already organized in Shopify, target by that attribute instead of picking products manually. New products that match are covered automatically. - **Combine groups** - A product can belong to multiple option groups. A jewelry item might have both "Engraving" and "Gift Services" groups. --- # Translations > Customize text and support multiple languages Source: https://help.pasilobus.com/product-options/translations App: Product Options (on the Shopify App Store as "Pasilobus Product Options") Shopify App Store: https://apps.shopify.com/product-options-pasilobus App help: https://help.pasilobus.com/product-options Section: Features Last updated: 2026-08-10 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Every store has its own voice. Whether you're localizing for international customers or simply prefer different terminology, translations let you customize every text string to match your brand and audience. ## Accessing Translations 1. Go to **Settings** in the app 2. Click **Translations** 3. Select your language from the dropdown 4. Edit any text strings 5. Click **Save** Changes apply immediately to your storefront. ## Supported Languages Product Options includes translations for: - English (default) - Spanish - French - German - Italian - Portuguese - Dutch - Japanese - Korean - Chinese (Simplified & Traditional) - And many more... Your store's primary language is detected automatically from Shopify settings. ## Custom Text Overrides Even without multiple languages, you can customize text: 1. Select your primary language in translations 2. Find the string you want to change 3. Enter your custom text 4. Save Examples: - Change "Required" to "Must fill in" - Change "Select an option" to "Choose one" - Change "Add to Cart" to "Buy Now" ## Common Strings to Customize - **Form labels** - "Required", "Optional" - **Validation messages** - "Please select an option", "This field is required" - **Button text** - Any add-to-cart or action button labels - **Placeholder text** - Default text shown in empty fields ## Multi-Language Stores For stores serving multiple regions: 1. Add each language in Shopify's language settings 2. Customize translations for each language in the app 3. Customers see translations based on their language selection The app respects Shopify's language detection and serves the appropriate translations. --- # Custom CSS > Style option elements with CSS Source: https://help.pasilobus.com/product-options/custom-css App: Product Options (on the Shopify App Store as "Pasilobus Product Options") Shopify App Store: https://apps.shopify.com/product-options-pasilobus App help: https://help.pasilobus.com/product-options Section: Features Last updated: 2026-08-09 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Product Options inherits your theme's fonts and colours automatically, and its own look is driven by the block's settings. When you need more than those settings offer, CSS gives you the rest. ## Where to Put Your CSS Shopify's theme editor has a **Custom CSS** box on every section, and one for the theme as a whole. Open the theme editor, select the section holding the Product Options block — or the theme, under **Theme settings** — and paste your rules there. They apply to the storefront without touching theme code, and they survive theme updates. Anything you write there is scoped by Shopify to that section, so the selectors below are all you need. ## Settings First Most of what merchants reach for CSS to change is a block setting, and a setting survives an app update where a selector may not. In the theme editor, click the Product Options block and you will find **Field background**, **Field hover background**, **Field max width**, **Field border width**, **Field border colour**, **Field corner radius**, **Dropdown chevron size** and **Value image size**. Those drive the app's own styling — the CSS below is for what they don't cover. ## Common Styling Examples **Change label colour:** ```css .product-options-wrapper .form__label { color: #333333; font-weight: bold; } ``` **Style the dropdown:** ```css select.product-option { border: 2px solid #000000; border-radius: 8px; } ``` **Change the value image size:** ```css .product-options-wrapper { --po-image-size: 100px; } ``` **Change the spacing between an option's parts:** ```css .product-options-wrapper { --po-gap: 14px; } ``` **Style the help text under an option:** ```css .product-options-inner-wrapper .description { font-size: 13px; opacity: 1; } ``` ## CSS Variables These are the supported way to restyle the block, and are what the block settings themselves set. Declare them on `.product-options-wrapper` and everything inside picks them up: - `--po-image-size` - How big value images are (default 75px) - `--po-gap` - The spacing step used between an option's parts and between the rows of a list (default 10px) - `--field-max-width` - How wide a field is allowed to get (default 360px) - `--field-height` - Minimum field height, shared by inputs, dropdowns and the quantity stepper (default 45px) - `--field-bg` / `--field-hover-bg` - Field background, at rest and on hover - `--field-border-width` / `--field-border-color` / `--field-border-radius` - The field border - `--field-chevron-size` - The dropdown caret ## CSS Class Reference **Containers:** - `.product-options-wrapper` - The whole block; where the variables above are declared - `.product-options-inner-wrapper` - One option - `.po-option-content` - Everything the customer reads and acts on within an option - `.po-option-control` - An option's label and its field - `.po-option-media` - The image column beside an option - `.po-option-qty` - The quantity picker beside a field **Fields:** - `.product-option` - On every option's field or field wrapper, whatever the type - `select.product-option` - Dropdowns - `.field__input.normalized` - Text, email, phone, number and date inputs - `.product-option .checkbox` / `.checkbox-item` - Checkbox lists and their rows - `.product-option.radio-buttons` - Radio lists - `.button-option` - Button tiles - `.product-option__pick-file-btn` / `.product-option__pick-upload-btn` - The gallery and upload buttons **Values:** - `.po-value-main` - A row's checkbox or radio and its label - `.po-value-media` - A row's image cell - `.po-value-image` - The image itself - `.po-value-description` - Per-choice description text **Accordion layout:** - `.accordion-item` - One collapsible option - `.accordion-button` - The header; gains `.active` when open, `.completed` when confirmed, `.skipped` when skipped - `.selected-value` - The chosen value shown in the header - `.accordion-content` - The panel ## Theme-Specific Adjustments The app already declines your theme's field decoration — Dawn and its descendants draw a border on the `.field` and `.select` wrappers, which would sit outside the app's own border — so a double outline is not something you need CSS for. For anything else, inspect the element in your browser and target the classes above. They are stable; if you find yourself needing a selector that isn't listed here, tell support rather than relying on one you found by inspection. --- # Orders & CSV Export > Review orders with customizations and export them to a spreadsheet Source: https://help.pasilobus.com/product-options/orders-export App: Product Options (on the Shopify App Store as "Pasilobus Product Options") Shopify App Store: https://apps.shopify.com/product-options-pasilobus App help: https://help.pasilobus.com/product-options Section: Features Last updated: 2026-08-09 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Every order that includes a product customization is collected in one place so you can see exactly what each customer asked for — and export it all to a spreadsheet. This is especially useful for production and fulfillment, where you need each option value broken out into its own column rather than buried in a line-item note. ## The Orders Page Open **Orders** from the app navigation. Only orders that contain product option customizations appear here — plain orders without options are left out to keep the list focused. An order appears as soon as it's placed, including orders waiting for a manual payment capture. Revenue figures count it once it's paid. ## Choices on Shopify's Order Page You can also see each item's choices without leaving Shopify's own order page. Open any order, select the apps icon above the order's cards and pin **Product options**. The card lists what the customer chose on every item, and uploaded files open from their links. It shows on every order from then on. For each order you'll see: - **Order** - The Shopify order number, linked to its details - **Customer** - Who placed the order - **Customizations** - How many option values were captured on that order - **Date** - When the order was placed - **Total** - Order value for the customized items Use the search box to find an order by number or by a customization value. ## Exporting to CSV The Orders page has an **Export** action in the top bar. It opens a dedicated export page that shows how many orders and line items are included, then a **Download CSV** button starts the download. The file downloads directly to your computer, ready to open in Excel, Google Sheets, or Numbers. ## What's in the File The export uses a **one row per ordered item** layout, which is what makes it useful for production sheets: - Each customized product in each order becomes its own row - Standard columns come first: order number, date, customer, shipping address, product, variant, SKU, quantity, and item price - **Every option becomes its own column** - the option name is the column header and the customer's choice is the value So if a customer ordered an engraved bracelet, you'll see the engraving text, font, and any other options each in their own column, right next to the product and shipping details. ## Shipping Address Columns The export includes the shipping address for each order, split into separate columns for easy sorting and mail-merge: - **Ship name**, **Address 1**, **Address 2**, **City**, **Province**, **Zip**, **Country**, **Phone** Because address is order-level, every line-item row from the same order repeats that order's address. Orders placed before address capture was added may have blank address fields; new orders always include it. ## Why Not Just Use Shopify's Export Shopify's built-in order export keeps line-item customizations as a single combined properties field, which is hard to read and impossible to sort or filter by a specific option. This export breaks each option out into its own column, so you can filter by font, sort by size, or hand a clean production sheet to your team. ## Common Uses - **Production sheets** - Give your workshop a clear list of what to make, with every customization spelled out - **Fulfillment** - Pack and ship with the shipping address and options side by side - **Backups and analysis** - Keep a snapshot of customization data or analyze which options sell --- # Shopify Flow > Automate work on orders with customizations and uploads Source: https://help.pasilobus.com/product-options/shopify-flow App: Product Options (on the Shopify App Store as "Pasilobus Product Options") Shopify App Store: https://apps.shopify.com/product-options-pasilobus App help: https://help.pasilobus.com/product-options Section: Integrations Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Shopify Flow runs work for you when something happens in your store. Product Options gives Flow two triggers and one action, so orders with customizations can be tagged, routed to your production team or approved without opening the app. ## Triggers - **Order with product options** - Starts when a paid order includes at least one customization. It gives the workflow the order itself, plus the order name, the customer's email, how many customizations were chosen and the value of the customized items. - **Order has uploads** - Starts when a paid order includes files the customer uploaded, such as artwork or a photo. It gives the workflow the order, the number of files and a link to each one. Each trigger runs once per order, when the order is paid. Orders placed with a manual payment capture start the workflow when you capture the payment. ## Tagging Orders Both triggers hand the workflow the order, so Flow's own actions work on it. For example, to tag every order that has artwork: 1. In Shopify Flow, create a workflow and choose the **Order has uploads** trigger 2. Add the **Add order tags** action and enter a tag such as `artwork` 3. Turn the workflow on You can use the same order in conditions (for example, only orders shipping to one country) and in other actions, such as sending an internal email with the file links. ## Approving Customizations The **Approve product option customizations** action marks every customized item on an order as approved in Product Options, the same as approving each item on the app's order page. Use it at the end of a workflow, for example once a proof has been checked elsewhere. ## Plan Requirements The triggers and the action work on every plan. --- # Theme Integration > Manual integration for custom themes Source: https://help.pasilobus.com/product-options/theme-integration App: Product Options (on the Shopify App Store as "Pasilobus Product Options") Shopify App Store: https://apps.shopify.com/product-options-pasilobus App help: https://help.pasilobus.com/product-options Section: For Developers Last updated: 2026-08-09 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) For most stores, the theme setup wizard handles everything. This guide is for developers building custom themes or needing manual control over option placement and behavior. ## App Embed vs App Block Product Options uses two integration methods: - **App Embed** - A global script that loads on every page. Handles form submission, validation, and cart integration. Enable in: Theme Editor > App embeds > Product Options - **App Block** - Placed on product pages to render the options form. Add in: Theme Editor > Add block > Apps > Product Options Both must be enabled for full functionality. ## Manual Block Placement For custom product templates: 1. Open your theme code 2. Navigate to the product template (e.g., `sections/main-product.liquid`) 3. Ensure the template supports app blocks in the product form area 4. The block will be available for placement via the theme editor For vintage themes without app block support, contact support for manual integration code. ## Block Settings Click the placed block in the theme editor to configure it. **Layout** - **Form Elements** - every option rendered one after another, the way a normal form reads - **Accordion Collapsible** - each option is a collapsible row showing the chosen value in its header, with **Add to Product** and **Skip** buttons in the panel. Skipping clears whatever was entered in that option, so a skipped option carries no value and no charge. **Value image size** - how big value images are, from 40 to 240 pixels. Everything else positions itself from this, so images stay aligned whatever you choose. **Title and Description** - optional text above the options. **Colours** - accent (used for the selected state), border, card background, and the completed and skipped colours for accordion rows. **Form Fields** - background, hover background, max width, border width, border colour, corner radius and dropdown chevron size. These apply to every field type at once: native dropdowns, text inputs, the colour and image dropdowns, the quantity picker, and the file-upload buttons. **Button Text** - the wording of the accordion's Add and Skip buttons, and the title of the additional-options group. **Layout & Spacing** - block border width, the gap below each option, and padding around the block. **After Adding to Cart** - stay on the page, go to the cart, or go straight to checkout. ## Form Integration Product Options integrates with the product form automatically. When customers submit the form: 1. Options are validated (required fields checked) 2. Selections are added to cart as line item properties 3. Priced options add additional line items or modify the product price The app handles this integration through the app embed script. ## Customizing Option Display For advanced styling beyond Custom CSS: 1. Identify the option's HTML structure using browser dev tools 2. Target elements with your theme's CSS 3. Use the CSS class reference from the Custom CSS article Remember that the app generates HTML dynamically—avoid overly specific selectors that might break with updates. ## Cart and Checkout Selected options appear in cart and checkout as line item properties. The property format is: ``` property_name: selected_value ``` Your theme's cart template should display line item properties. Most modern themes do this automatically. If not, add to your cart template: ```liquid {% for property in item.properties %} {% unless property.last == blank %}

{{ property.first }}: {{ property.last }}

{% endunless %} {% endfor %} ``` --- # Options Not Showing > Fix invisible product options Source: https://help.pasilobus.com/product-options/options-not-showing App: Product Options (on the Shopify App Store as "Pasilobus Product Options") Shopify App Store: https://apps.shopify.com/product-options-pasilobus App help: https://help.pasilobus.com/product-options Section: Troubleshooting Last updated: 2026-08-09 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) If your product options aren't appearing on product pages, don't worry—it's usually a quick fix. Most issues come down to the app embed being disabled, the block not being added, or products not being assigned to an option group. ## Check the App Embed The most common cause is the app embed being disabled: 1. Go to **Online Store > Themes** 2. Click **Customize** on your active theme 3. Click **App embeds** in the left sidebar 4. Look for **Product Options** 5. Make sure the toggle is **ON** 6. Click **Save** If Product Options doesn't appear in app embeds, try reinstalling the app. ## Verify Block Placement Even with the embed enabled, you need the app block on product pages: 1. In theme editor, select **Products > Default product** from the page dropdown 2. Look for the **Product Options** block in the product section 3. If missing, click **Add block > Apps > Product Options** 4. Position it where you want options to appear, above **Add to cart**. On Dawn and some other themes the setup button adds it at the bottom of the product section, below Add to cart and Share: drag it up above the buy buttons 5. Click **Save** ## Check Product Targeting Options only appear on products assigned to an option group: 1. Open your option group in the app 2. Check the application scope: - If "All products" — options should appear everywhere - If "Specific products" — verify the product is in the list - If targeting a collection, tag, product type, or vendor — verify the product actually has that attribute (matching is case-insensitive, but the value must otherwise match, e.g. "t-shirt" won't match a "tshirt" type) 3. Add the product (or the matching tag/type/vendor/collection membership) if it's missing ## Verify Options Exist An empty option group won't display anything: 1. Open the option group 2. Confirm it has at least one option 3. Check that options aren't all set to "Hidden" type 4. Ensure no conditions are hiding all options ## Theme Compatibility Some themes may need adjustments: - **Outdated themes** - May not support app blocks. Update to the latest version. - **Custom themes** - Verify the theme uses Online Store 2.0 features and includes app block zones in product templates. - **Third-party themes** - Check theme documentation for app compatibility. ## Cache Clearing Browser or CDN cache can show old versions: - **Browser cache** - Press Ctrl+Shift+R (Windows) or Cmd+Shift+R (Mac) - **Shopify cache** - Make a small edit in theme code, save, then revert - **CDN cache** - Purge cache in your CDN dashboard if using one ## Still Not Working? If options still don't show: 1. Check browser console for JavaScript errors 2. Disable other apps temporarily to test for conflicts 3. Try a different browser or incognito mode 4. Contact our support with your store URL --- # Pricing Issues > Fix option pricing problems Source: https://help.pasilobus.com/product-options/pricing-issues App: Product Options (on the Shopify App Store as "Pasilobus Product Options") Shopify App Store: https://apps.shopify.com/product-options-pasilobus App help: https://help.pasilobus.com/product-options Section: Troubleshooting Last updated: 2026-08-09 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) If option prices aren't displaying correctly or calculations seem wrong, there are several things to check. Most pricing issues relate to plan requirements, configuration, or how prices are attached to values. ## Prices Not Appearing If prices don't show next to option values: 1. **Check your plan** - Pricing features require the Pro plan or higher. Free plan users see options but cannot add prices. 2. **Verify prices are set** - Edit the option and check that each value's **Price** field is filled in under **Pricing Settings**. A price of 0 means no charge — entering 0 clears the price and detaches any assigned variant. 3. **Check "Hide Prices" setting** - If enabled, prices won't display to customers (but still apply at checkout). 4. **Confirm option type** - Single-value types like text input don't show prices the same way as dropdown or swatches. ## Incorrect Price Calculations If the total seems wrong: 1. **Add-ons count per item** - An add-on is charged for every item ordered. A $10 product with a $5 add-on costs $15 each, so 2 of them cost $30. The product page, the cart and checkout all show the same total. 2. **Review attached products** - If a value is linked to one of your own products, it charges that variant's current catalog price — check the product in your Shopify admin. Values where you typed a price use an app-managed add-on variant that always matches the amount you entered. 3. **Multiple priced options** - Prices are additive. If selecting multiple options with prices, all are added together. ## "Something Went Wrong" When Adding a Priced Choice Prices you type on a value are charged through a hidden **Add-ons** product the app creates in your store. It has to be on the Online Store sales channel, or the cart refuses it. The app publishes it by itself and checks again each time you save an option, so saving any option fixes it. If it still happens, open **Products**, find **Add-ons** (product type Pasilobus Product Options), and include it in the **Online Store** sales channel. Keep its status Unlisted so it stays out of your collections and search. ## Prices Not Applying at Checkout If prices show on the product page but don't apply: 1. **Verify the selection** - Ensure the customer actually selected the priced option, not just viewed it. 2. **Check merge settings** - If "Merge to Product" is enabled, the price adds to the main product rather than appearing as a separate line. 3. **Conditional options** - If the priced option uses conditional display, ensure conditions were met when added to cart. ## Currency Display Issues If prices show in the wrong format: 1. **Check Shopify currency settings** - The app uses your store's currency configuration. 2. **Multi-currency stores** - Prices convert based on Shopify's currency conversion rates. ## Plan Upgrade If pricing features aren't working, you may need to upgrade: 1. Go to **Plans** in the app 2. Select Pro or higher 3. Pricing features activate immediately after upgrade --- # Styling Issues > Fix appearance problems Source: https://help.pasilobus.com/product-options/styling-issues App: Product Options (on the Shopify App Store as "Pasilobus Product Options") Shopify App Store: https://apps.shopify.com/product-options-pasilobus App help: https://help.pasilobus.com/product-options Section: Troubleshooting Last updated: 2026-08-10 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) If Product Options doesn't look right on your store — wrong colours, sizes, or alignment — start with the block's own settings. Most of what looks wrong is something the app is meant to control for you. ## Start With the Block Settings Open the theme editor and click the Product Options block. Under **Form Fields** you can set the field background, hover background, max width, border width, border colour, corner radius and dropdown chevron size; **Value image size** sets how big value images are. These drive every field type at once — a dropdown, a text input, the quantity picker and the file-upload buttons all follow them, so you get one consistent look without writing a line of CSS. ## Double Borders You should not see two outlines around a field. Dawn and themes built from it draw a field's border on the wrapper, outside the app's own border, and the app suppresses that automatically for both fields and dropdowns. If you still see a doubled outline, the second one is coming from somewhere else — a theme customisation or another app. Inspect the field in your browser, find which rule draws the outer line, and override it in the theme editor's **Custom CSS**. ## Options Look Too Wide or Too Narrow Every field is capped at **Field max width** (360px by default) so a row of options shares one right edge rather than stretching to whatever the theme's container happens to be. Raise or lower that setting rather than setting widths in CSS — value images and the quantity picker are positioned from it, so changing it in one place keeps them aligned. ## Value Images Look Wrong - **Different sizes** - the app crops every value image to a square at the **Value image size** setting. Upload square images so nothing important is cropped out. - **Images not appearing** - check **Show the value's image** on the option, under *What customers see*. It only appears once a value has an image. - **Images in different places down the page** - this is what the app aligns for you: a picture beside an option and a picture on a checkbox row land on the same line. If yours don't, your theme is likely constraining the block's width; check the section's own width settings first. ## Swatches - **Blank squares** - a swatch value with neither a colour nor an image shows its name in a tile instead. If you wanted a picture there, add one to the value. - **Colour swatches** - the value itself must be a hex code, including the `#` (for example `#FF0000`). - **Selected state** - the chosen swatch is outlined in the block's **Accent colour**. ## Fonts Don't Match Options inherit your theme's font. If they don't, your theme is probably setting a font on its own field classes that the app's fields don't carry: ```css .product-options-wrapper .form__label, .product-options-wrapper .product-option { font-family: inherit; } ``` ## Mobile Display An option and its quantity picker sit side by side on a desktop and stack on a phone, below 600px wide. If something overflows on mobile, check that the theme's container isn't forcing a width on the block, and that **Field max width** isn't larger than the space available. ## Still Wrong Inspect the element in your browser to see which stylesheet wins. The app's classes are listed in the Custom CSS article; write your override in the theme editor's **Custom CSS** box on the section holding the block, so it survives theme and app updates. --- # Installing and setting up > Add the app to your store and place review widgets on your theme Source: https://help.pasilobus.com/product-reviews/installation App: Product Reviews (on the Shopify App Store as "Pasilobus Product Reviews") Shopify App Store: https://apps.shopify.com/product-reviews-2 App help: https://help.pasilobus.com/product-reviews Section: Getting Started Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Getting reviews live takes three steps: install the app, add the review widget to your theme, and confirm the storefront. Most stores are collecting reviews within a few minutes — no theme code edits required. ## Install the app Add the app from the Shopify App Store. It opens inside your Shopify admin alongside your other apps. The first time you open it, a setup wizard walks you through enabling the app embed and adding the widget. ## Enable the app embed The app embed loads the small JavaScript and CSS needed by every widget. For stars under product cards on collection and search pages, add the **Product card stars** block to your collection template, or turn on your theme's own **Show product rating** setting. Use one of the two. See [Star ratings on collection and search pages](stars-on-product-cards). - Click **Set up theme** in the setup wizard, or go to **Online Store > Themes > Customize** - In the theme editor, open **App embeds** in the left sidebar - Toggle **Product Reviews** on and **Save** ## Add the review widget to product pages - Open a **Product** template in the theme editor - Click **Add block** in the product section and choose **Product Reviews** from the Apps list - Drag it to where reviews should appear (typically below the product description) - **Save** You only need to do this once — the widget appears on every product. ## Add the star rating badge (optional) For a compact star badge near the Add to Cart button: - In the same product template, click **Add block** and choose **Star Rating Badge** - Place it where it fits — often right under the product title or price - **Save** ## Confirm it's working Visit any product on your storefront. You should see the **Customer Reviews** section with an empty state ("Be the first to review this product") and a **Write a review** button. If you don't see it, open Troubleshooting → "The review widget isn't appearing on the product page." --- # How reviews work > Verified purchases, moderation, and where reviews show up Source: https://help.pasilobus.com/product-reviews/how-reviews-work App: Product Reviews (on the Shopify App Store as "Pasilobus Product Reviews") Shopify App Store: https://apps.shopify.com/product-reviews-2 App help: https://help.pasilobus.com/product-reviews Section: Getting Started Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Reviews collected by this app are stored on your Shopify store as native review records, so they survive even if you uninstall and reinstall. Each review has a status, a star rating, optional title and body, and optional photos. The app handles where they show, when they're published, and how customers are asked to submit them. ## Verified purchase vs. unverified A review is **verified** when the email used to submit it matches an order on your store. Two paths get there: - **Email request flow** — the customer clicks the secure link in the post-purchase email. The review is automatically tied to their order and marked verified. - **Storefront form** — anyone can submit a review on a product page. If the email they enter matches an existing order, it's marked verified. Otherwise it shows without the badge. The **Verified** badge appears next to the reviewer's name in the widget. It's one of the strongest social proof signals you can show shoppers. ## The moderation queue Every submitted review starts as **pending** in your admin. You can: - **Approve** — moves it to approved and publishes it to the storefront - **Reject** — keeps it private and hidden - **Edit** — fix typos or remove personal info before publishing - **Reply** — write a public response that shows under the review Turn on **Auto-publish** in settings if you want reviews above a certain rating to skip the queue. ## Where reviews show up Reviews show in these places once approved and published: - **Product page widget** — the full list, summary stars, rating breakdown - **Star rating badge** — compact stars near the Add to Cart button - **Stars on product cards** — on collection, search, and home pages, shown by your theme's product rating setting from the ratings the app keeps in sync in Shopify - **Review carousel** — recent reviews on the homepage or any page (if you added the block) - **Google search results** — star ratings show via SEO structured data --- # The product reviews widget > The main widget on product pages — review list, summary, and submission form Source: https://help.pasilobus.com/product-reviews/review-widget App: Product Reviews (on the Shopify App Store as "Pasilobus Product Reviews") Shopify App Store: https://apps.shopify.com/product-reviews-2 App help: https://help.pasilobus.com/product-reviews Section: Storefront Widgets Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) The product reviews widget is the main block you add to product pages. It shows every approved review for that product, the average rating, a star breakdown, and a form for shoppers to submit their own review. It's the workhorse of the app — the one widget most stores need. ## What customers see The widget renders as a clean, bordered card with: - **Heading + summary** at the top — the average rating, total count, and a **Write a review** button - **Rating breakdown bars** showing how many reviews fell at each star (5★ through 1★) - **Review list** with photos, author name, verified-purchase badge, date, and your reply (if any) - **Pagination** at the bottom when there's more than a page of reviews - **Empty state** when no reviews exist yet, with a CTA to be the first to review The widget hides the submission form by default — shoppers click **Write a review** to expand it. This matches the pattern customers expect from major review apps. ## Adding the widget In the theme editor: - Open a **Product** template - Click **Add block** in the product section - Choose **Product Reviews** from the Apps list - Drag it to the right spot (typically below the description, above related products) - **Save** ## Photos in the list If reviewers upload photos with their review, the photos show as small thumbnails under the review text. Click any thumbnail to open a full-size lightbox. ## SEO structured data The widget can output JSON-LD structured data so Google can show your star ratings in search results. Leave **Include SEO structured data** on (default) unless you have another app doing the same — duplicate markup confuses search engines. ## Settings All settings live in the theme editor on the block itself: heading text, reviews per page, default sort, whether to show the form, the rating breakdown, photos, and structured data. See [Customizing the widget appearance](customizing-appearance) for color and spacing options. --- # Star rating badge > Small star badge for product pages, typically near the title or Add to Cart Source: https://help.pasilobus.com/product-reviews/star-rating-badge App: Product Reviews (on the Shopify App Store as "Pasilobus Product Reviews") Shopify App Store: https://apps.shopify.com/product-reviews-2 App help: https://help.pasilobus.com/product-reviews Section: Storefront Widgets Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) The star rating badge is a small, compact star display you can add anywhere on the product page — most commonly right under the product title or next to the price. It's lighter than the full reviews widget and works well as a "tap to scroll to reviews" link. ## When to use the badge vs. the full widget Use both together — they serve different jobs: - **Star rating badge** — a quick visual signal at the top of the page, where shoppers first land. Shows the rating and total count, nothing else. - **Product reviews widget** — the full list and form, lower on the page where shoppers go to dig in. If the product has no reviews yet, the badge hides itself automatically so the page doesn't show empty stars. ## Adding the badge - Open a **Product** template in the theme editor - Click **Add block** in the product section and choose **Star Rating Badge** from the Apps list - Drag it just under the title, next to the price, or wherever it fits your design - **Save** ## How the rating is calculated The badge reads from the **reviews.rating** and **reviews.rating_count** standard metafields on the product. The app maintains these automatically every time a review is approved, edited, unpublished, or deleted. The number you see matches the average of every approved, published review for that product. ## Settings In the theme editor, you can adjust: - **Star color** and **empty star color** - **Star size** (12–24px) - **Margins** above and below the badge The badge uses inline SVG stars, so it loads instantly and never causes layout shift. --- # Star ratings on collection and search pages > Show stars under every product card, with or without your theme's own rating setting Source: https://help.pasilobus.com/product-reviews/stars-on-product-cards App: Product Reviews (on the Shopify App Store as "Pasilobus Product Reviews") Shopify App Store: https://apps.shopify.com/product-reviews-2 App help: https://help.pasilobus.com/product-reviews Section: Storefront Widgets Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Collection pages, search results and product lists on your home page can show each product's star rating and review count under the product's name. There are two ways to turn this on. Use one of them, not both. ## Option 1: the "Product card stars" block This block works with any theme, including themes without a product rating setting. 1. In the app, open **Settings > Storefront widgets** and click **Add to theme** next to **Product card stars**. The theme editor opens on your collection template. 2. Add the block anywhere in the template. It shows nothing where it sits. 3. Save. Every product card on that page now shows its stars and review count under the title. Repeat for the **search** template and for your **home page** if it lists products. In the block's settings you can change the star colors and size, hide the review count, and choose whether to skip cards that already show your theme's own rating. ## Option 2: your theme's "Show product rating" setting Dawn, Horizon and most Online Store 2.0 themes have a built-in rating on product cards. The app keeps every product's rating up to date in Shopify, so the theme can show it. 1. Open the theme editor on a collection page. 2. Select the **Product grid** section. 3. Turn on **Show product rating** (the name varies slightly between themes). ## Which one to choose - Your theme has the setting and you like how it looks: use option 2. - Your theme has no rating setting, or you want the app's star style: use option 1. - The block skips cards that already show your theme's rating, so if both are on you will not see stars twice. ## Stars are not showing - Only products with at least one approved, published review show stars. - A new review can take a minute to appear on cards. - If you use option 2, check that the setting is on in the template your collection actually uses (some stores have several collection templates). - Reviews moderated as pending do not count until you approve them. --- # Review carousel for the homepage > A scrolling carousel of recent reviews — great social proof for the homepage Source: https://help.pasilobus.com/product-reviews/review-carousel App: Product Reviews (on the Shopify App Store as "Pasilobus Product Reviews") Shopify App Store: https://apps.shopify.com/product-reviews-2 App help: https://help.pasilobus.com/product-reviews Section: Storefront Widgets Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) The review carousel is a horizontally-scrolling row of review cards you can drop onto your homepage, a landing page, or any section. It's social proof at the first scroll — useful for stores where the homepage is the main entry point. ## What customers see The carousel shows a configurable number of recent reviews as cards. Each card has: - A review photo (if the review has one) - Star rating - Title and review body (truncated to a few lines) - Author name and **Verified** badge Shoppers can scroll horizontally with their finger or trackpad, or click the arrow buttons on the sides. On phones the arrows hide and shoppers swipe. ## Adding the carousel - Open the page where you want it — homepage, a custom page, or a collection - In the theme editor, click **Add section** (or **Add block** inside a section) - Choose **Review Carousel** from the Apps list - Place it where it fits — between the hero and the featured products, or near the bottom of the homepage - **Save** ## Settings - **Heading** and optional **subtitle** - **Number of reviews to show** (3–20) - **Show photos** — keep on for the most visual impact - **Auto-scroll** — optional autoplay with a configurable interval. Pauses on hover so shoppers can read. - **Star color** and **empty star color** ## What reviews appear The carousel pulls the most recent approved, published reviews across all products. There's no per-product filtering — it's designed as a brand-wide social proof block. If you want product-specific reviews, use the product reviews widget on the product page. --- # Happy customers page > A dedicated /pages/reviews page that shows reviews across your whole catalog Source: https://help.pasilobus.com/product-reviews/happy-customers-page App: Product Reviews (on the Shopify App Store as "Pasilobus Product Reviews") Shopify App Store: https://apps.shopify.com/product-reviews-2 App help: https://help.pasilobus.com/product-reviews Section: Storefront Widgets Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) The happy customers page is a dedicated page on your store that shows every approved review across your whole catalog. It's a "wall of love" that you can link to from your nav menu, footer, or marketing campaigns. Strong stores use it as proof when running paid ads. ## Creating the page In Shopify admin: - Go to **Online Store > Pages > Add page** - Title it something like **Reviews** or **What our customers say** - Save the page (the body can stay empty) - The page is now reachable at `/pages/reviews` (or whatever URL you picked) ## Adding the block In the theme editor: - Open the new page from the page dropdown at the top - Click **Add section** and pick the page template (usually called "Page" or "Default page") - Click **Add block** in that section and choose **Happy Customers** from the Apps list - **Save** ## What customers see - Every approved, published review across all products (newest first) - Photos, ratings, author names, verified-purchase badges - Pagination so the page stays fast ## Linking to the page Add a link in your main nav: - **Online Store > Navigation > Main menu** - Add a menu item — name it something like **Reviews** and link to your new page - **Save** You can also link to the page from email campaigns, Instagram bio, paid ads, or product page descriptions to drive shoppers to social proof. --- # Collection page star badges (app embed) > Auto-inject star ratings under product cards on collection, search, and home pages Source: https://help.pasilobus.com/product-reviews/app-embed-and-badges App: Product Reviews (on the Shopify App Store as "Pasilobus Product Reviews") Shopify App Store: https://apps.shopify.com/product-reviews-2 App help: https://help.pasilobus.com/product-reviews Section: Storefront Widgets Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) The app embed is a small JavaScript and CSS bundle that loads on every page of your storefront. It does two things: powers the interactive parts of the review widgets (form submission, AJAX loading) and auto-injects star rating badges under product cards on collection, search, and home pages — without any theme code edits. ## Enabling the app embed - Go to **Online Store > Themes > Customize** - Open **App embeds** in the left sidebar - Toggle **Product Reviews** on - **Save** You only need to do this once per theme. If you switch themes, enable the embed on the new theme. ## Collection page badges When the app embed is on, the widget automatically scans product cards on your collection, search, and home pages and adds a small star rating badge under each card. The badge only appears for products that have at least one approved review — products without reviews stay clean. The settings on the app embed control this: - **Show star ratings on collection pages** — turn the feature on or off entirely - **Badge position** — below product title, below price, or above the title - **Badge star size** — 10–20px ## When badges don't show A few reasons a badge might not appear: - The product has zero approved reviews yet - Your theme's product card markup doesn't include the rating metafield reference (most modern themes do; older themes may need a small edit) - The app embed itself isn't enabled — double-check **App embeds** in the theme editor If you see one but not all of these, see Troubleshooting → "Star badges aren't showing on the collection page." ## What's NOT covered by the embed The product page widget, star rating badge, review carousel, and happy customers page are all **separate blocks** you add individually in the theme editor. The app embed only powers the storefront JavaScript and the collection badge injection — it doesn't add visible blocks on its own. --- # Customizing the widget appearance > Match the widget to your brand — colors, borders, spacing, and form style Source: https://help.pasilobus.com/product-reviews/customizing-appearance App: Product Reviews (on the Shopify App Store as "Pasilobus Product Reviews") Shopify App Store: https://apps.shopify.com/product-reviews-2 App help: https://help.pasilobus.com/product-reviews Section: Storefront Widgets Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) The review widget is designed to match any storefront. Every visible color, the star style, the form behavior, and the spacing are configurable from the theme editor — no CSS edits needed. ## Where the settings live In the theme editor, click on the **Product Reviews** block on a product page. The left panel shows all settings grouped by Colors, Spacing, and behavior options. ## Colors The widget exposes five color settings: - **Star color** — filled portion of every star (default gold `#FFB800`) - **Empty star color** — unfilled portion (default light gray `#D4D4D4`) - **Accent color** — buttons, the active page in pagination, focus rings on form inputs (default near-black `#111111`) - **Accent text color** — text on accent buttons (default white) - **Border color** — the widget card outline, dividers between reviews, form input borders (default `#E5E5E5`) - **Widget background** — the card background (default white) - **Form background** — the submission form's container background (default `#FAFAFA`) Pick an accent that matches your brand's primary CTA color. The widget will use it everywhere a customer interacts (Write a review, Submit, page numbers). ## Spacing - **Top margin** and **bottom margin** — space above and below the widget card, in pixels. Tune so the widget sits comfortably between the description and the related products. ## Form behavior - **Show review submission form** — when off, the widget shows reviews but no Write a review button. Use this if you only collect reviews via post-purchase emails. - **Require customer login** — when on, only logged-in customers see the form. Guests see a **Log in to review** link. - **Reviews per page** — 3 to 25 - **Default sort** — newest first, highest rated, or lowest rated - **Show photos** — toggle photo thumbnails in the list - **Show rating breakdown bars** — the 5★/4★/3★/2★/1★ bar chart under the summary - **Include SEO structured data** — adds JSON-LD markup so star ratings can appear in Google search results ## Responsive The widget scales for mobile automatically — padding shrinks, photo thumbnails get smaller. There are no separate mobile settings to manage. --- # Post-purchase email requests > Automatically ask customers to review their purchase after delivery Source: https://help.pasilobus.com/product-reviews/email-review-requests App: Product Reviews (on the Shopify App Store as "Pasilobus Product Reviews") Shopify App Store: https://apps.shopify.com/product-reviews-2 App help: https://help.pasilobus.com/product-reviews Section: Collecting Reviews Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Most reviews come from customers who've already received and used the product. The post-purchase email request is the single biggest lever you have to grow your review count — it goes out automatically a few days after delivery and asks the customer to share their experience. ## Turning email requests on In the app, go to **Settings > Emails** and toggle **Send review request emails** on. You'll also pick how many days after order payment to send the email. A good starting point is **10–14 days** — enough time for the order to arrive and the customer to actually use the product. For perishables or fast-delivery items, drop it to 5–7 days. For furniture or appliances that take time to evaluate, push it to 21+ days. ## What's in the email The email is short on purpose. It shows: - The product(s) the customer ordered, with a small image - A row of stars the customer can click to start the review - A single big **Leave a review** button that opens the review form on your storefront Clicking any star or the button takes the customer to your storefront review form, pre-filled with their info. The review is automatically tied to their order and earns the **Verified Purchase** badge when submitted. ## How the link works Every email contains a unique, secure link with a one-time token. Because the token identifies the customer and order, no login is required — they click once and they're at the form. This is one of the highest-converting flows in the app. If they don't review by the time you've configured a follow-up reminder, the reminder uses the same link. See [Follow-up reminders](email-reminders) for that flow. ## Editing what the email says To customize the subject line and body, see [Editing email subject and body](../customizing-emails/email-templates). To send from your own address or domain, see [Sending from your own address or domain](../customizing-emails/branded-sender). --- # Follow-up reminders > Send a second email if the customer hasn't reviewed yet Source: https://help.pasilobus.com/product-reviews/email-reminders App: Product Reviews (on the Shopify App Store as "Pasilobus Product Reviews") Shopify App Store: https://apps.shopify.com/product-reviews-2 App help: https://help.pasilobus.com/product-reviews Section: Collecting Reviews Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Most customers don't act on the first email. A polite reminder a few days later can roughly double your review submission rate — and is gentle enough that it rarely upsets anyone. The app handles the timing and skips reminders for customers who already reviewed. ## Turning reminders on In the app, go to **Settings > Emails** and toggle **Send follow-up reminder** on. Pick how many days after the first email to send the reminder. A common cadence is **7 days after the first email** — long enough that the first one isn't fresh, short enough that the purchase is still in the customer's memory. If your first email goes 14 days after the order, the reminder lands about three weeks after delivery. ## When the reminder fires The reminder is automatically skipped if: - The customer already submitted a review (we don't pester reviewers) - The first email was never delivered (we don't pile reminders on bounces) - The order was refunded (we don't ask for reviews on returned items) If none of those apply, the reminder goes out on schedule using the same secure submit link from the first email. ## What's in the reminder The reminder uses the same template style as the first email but with softer copy ("Just a friendly reminder…"). You can edit the wording in **Email templates** — see [Editing email subject and body](../customizing-emails/email-templates). ## How merchants typically use this - One reminder is the sweet spot. Two reminders feel pushy and customers start unsubscribing. - If you offer a [discount code for photo reviews](discount-incentives), mention it in the reminder body — it's a strong nudge. --- # Photo reviews > Let customers upload photos with their review Source: https://help.pasilobus.com/product-reviews/photo-reviews App: Product Reviews (on the Shopify App Store as "Pasilobus Product Reviews") Shopify App Store: https://apps.shopify.com/product-reviews-2 App help: https://help.pasilobus.com/product-reviews Section: Collecting Reviews Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Photo reviews are the single most persuasive form of social proof. Stores that show photo reviews convert significantly better than stores that show text-only reviews. The app supports photo uploads in the review form by default. ## How customers add photos When a customer fills out the review form, they see a photo upload field below the star rating. They can: - Drag and drop image files directly - Click to pick files from their device - Add multiple photos in one review Photos upload immediately after the review is submitted and are stored on your store. They appear as thumbnails under the review text in the widget once the review is approved. ## File limits - **Image formats:** JPEG, PNG, GIF, WebP, HEIC - **Max file size:** 10 MB per photo - **Max photos per review:** 5 On paid plans customers can also attach one short video. See [Video reviews](video-reviews). ## Removing a photo On a review's page in the app, click **Remove** under a photo to take it out of the review and keep the rest. The review updates everywhere it shows. ## How photos show on the storefront In the **product reviews widget**, photo thumbnails appear in a row under the review body. Clicking any thumbnail opens a full-size lightbox overlay (click anywhere to close, or press Escape). In the **review carousel**, the first photo is used as the card's hero image — pick reviews with strong photos to surface in the carousel. ## Encouraging more photo reviews The most effective lever: turn on the [photo and video reward](discount-incentives) (paid plans). Customers who include a photo receive a unique discount code by email. --- # Video reviews > Let customers attach a short video to their review (paid plans) Source: https://help.pasilobus.com/product-reviews/video-reviews App: Product Reviews (on the Shopify App Store as "Pasilobus Product Reviews") Shopify App Store: https://apps.shopify.com/product-reviews-2 App help: https://help.pasilobus.com/product-reviews Section: Collecting Reviews Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Customers can attach one short video to their review. Videos show in the reviews widget with a play button, next to the review's photos. Video reviews are on paid plans. ## Turning it on In the app, go to **Settings > Reviews** and turn on **Let customers add a video** under **Photo and video reviews**. The video field then appears in the review form on your product pages and in the review page customers open from your review request emails. ## Limits - **One video per review** - **Up to 60 seconds** (the form checks the length before uploading) - **Up to 50 MB** - **Formats:** MP4, MOV (iPhone) and WebM Videos recorded on a phone are usually well within these limits. A longer video is refused with a message asking the customer to trim it. ## Moderation A review with a video always waits for your approval, even if you auto-publish reviews. Watch it from the review's page in **Reviews**, then approve or reject it. You can also remove a single photo or the video from a review and keep the rest: on the review's page, click **Remove** under the photo or video. The review updates everywhere it shows. ## Where videos appear - The product reviews widget, under the review text - The review's page in the app (Watch video) Videos are stored by the app, not in your Shopify Files. --- # Discount codes for photo and video reviews > Reward customers who add a photo or video with an automatic discount code (paid plans) Source: https://help.pasilobus.com/product-reviews/discount-incentives App: Product Reviews (on the Shopify App Store as "Pasilobus Product Reviews") Shopify App Store: https://apps.shopify.com/product-reviews-2 App help: https://help.pasilobus.com/product-reviews Section: Collecting Reviews Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Reviews with photos and videos sell better than text-only reviews, and a small reward is the most reliable way to get more of them. The app can give every customer who adds a photo or video a unique discount code for their next order. The reward is on paid plans. ## Turning it on In the app, go to **Settings > Reviews** and find **Photo and video reviews**. Turn on **Reward photo and video reviews with a discount code**, then choose: - **Which reviews earn the code:** a photo or a video, or a video only - **Discount:** the percent off the customer's next order (10 to 15% works well for most stores) - **Code valid for:** how many days the code works - **Code prefix:** the start of every code, so you can spot them in Shopify (for example `THANKYOU` gives codes like `THANKYOU-4K7Q2M9X`) The review form then tells customers about the reward. The first time you turn it on, Shopify may ask you to approve the app's access to discounts. Approve it so the app can create the codes. ## How the customer gets the code 1. The customer submits a review with a photo or video. 2. The app creates a single-use code in your store's **Discounts**. 3. The customer receives the code by email within a minute, with its value and expiry date. Each code works once, for one customer, on any product. The reward never depends on the rating: a one-star review with a photo earns the same code as a five-star one. ## Google and the Shop app - **Google:** reviews that earned a reward are marked as incentivized in your [Google product review feed](google-shopping), as Google requires. - **Shop app:** the Shop app does not accept reviews given in exchange for a discount, so rewarded reviews are not sent to it. They still show on your store and still count in your star rating. ## When not to use it - Brands that never discount - Thin-margin products where any discount hurts --- # Request a review from the order page > Send or schedule one order's review request from Shopify admin Source: https://help.pasilobus.com/product-reviews/order-page-request App: Product Reviews (on the Shopify App Store as "Pasilobus Product Reviews") Shopify App Store: https://apps.shopify.com/product-reviews-2 App help: https://help.pasilobus.com/product-reviews Section: Collecting Reviews Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) You can send a review request for a single order straight from the order's page in Shopify admin, without waiting for the automatic email. Use it for a customer who just told you they love their order, or for orders placed before you installed the app. ## Sending a request 1. In Shopify admin, open the order. 2. Click **More actions**, then **Request a review**. 3. Choose **Send now**, or **Schedule** to send it on your usual delay (the "days after purchase" setting in **Settings > Email requests**). The customer gets your review request email with a link to review every product in the order. Reviews left through it are marked as verified purchases. The action works even when automatic review requests are turned off. ## What the status means When you open the action on an order that already has a request, it shows: - **Scheduled:** the email will go out on its date. **Send now** sends it right away. - **Sent / opened:** the customer received it. **Send again** sends it once more. - **Completed:** the customer reviewed everything in the order, so there is nothing left to request. **View in Product Reviews** opens the request in the app, with the products and any reviews it brought. ## When it can't send - The order has no customer email. - The order has no products that can be reviewed (for example, only gift cards or custom items). --- # Who can leave a review > Require login or accept guest reviews, and what pre-fills for logged-in customers Source: https://help.pasilobus.com/product-reviews/guest-vs-logged-in App: Product Reviews (on the Shopify App Store as "Pasilobus Product Reviews") Shopify App Store: https://apps.shopify.com/product-reviews-2 App help: https://help.pasilobus.com/product-reviews Section: Collecting Reviews Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) There are two paths a customer can take to leave a review: log in to their store account first, or fill out the form as a guest. Both have trade-offs — guest reviews capture more total reviews, login-required reviews catch less spam. You can pick either approach from the widget settings. ## The "Require customer login" setting Find this in the theme editor on the **Product Reviews** block (or in **Settings > Reviews** for the global default). - **On (default):** only logged-in customers can submit reviews. Guests see a **Log in to review** link that takes them to the storefront login page and brings them back to the product after sign-in. Their name and email are pre-filled. - **Off:** anyone can submit. Guests enter their name and email themselves. Logged-in customers still get pre-fill. ## How verified-purchase matching works A review is **verified** when the email used to submit it matches an order on your store. This works whether or not login is required: - Logged-in: the customer's account email is used → verified if it matches an order - Guest: the email they typed is used → verified if it matches an order So requiring login doesn't change the verification rate — it just changes whether anonymous shoppers can submit at all. ## Picking the right default - **Require login on** — best for stores with mature customer accounts, premium brands where authenticity matters, or stores with a spam problem - **Require login off** — best for stores where customer accounts are rare, mass-market products where review volume matters more than vetting, or international stores where customers don't always sign in You can change this setting anytime. The change only affects new submissions. ## A note on pre-fill When a logged-in customer opens the review form, the **Your name** field is pre-filled as "First L." (first name + last initial) to protect privacy on the public storefront. The email field is pre-filled with their account email (used only for verification — never shown publicly). --- # The moderation queue > Approve, reject, edit, or delete reviews from the admin Source: https://help.pasilobus.com/product-reviews/moderation-queue App: Product Reviews (on the Shopify App Store as "Pasilobus Product Reviews") Shopify App Store: https://apps.shopify.com/product-reviews-2 App help: https://help.pasilobus.com/product-reviews Section: Moderation and Display Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Every review submitted to your store starts as **pending** in the moderation queue. You decide what gets published, what gets fixed, and what gets rejected. The queue lives at the **Reviews** page in your app admin. ## Finding pending reviews Open the **Reviews** page from the app's main nav. The default view shows all reviews; filter by status at the top to see only pending ones. You'll get an email when a new review arrives if **New review notifications** is on (see [Merchant notifications](../customizing-emails/merchant-notifications)). ## Available actions Click any review to open its detail page. From there: - **Approve** — publishes the review to the storefront immediately - **Reject** — hides it from the storefront. The review stays in your records but customers never see it. - **Unpublish** — for an already-approved review, removes it from the storefront without deleting it - **Republish** — un-rejects or un-unpublishes - **Edit** — fix typos, remove personal info, or tighten wording before publishing - **Reply** — add a public response that shows under the review on the storefront. See [Replying to reviews](merchant-replies). - **Delete** — permanently removes the review (use sparingly — once it's gone, it's gone) ## Bulk actions On the **Reviews** index, select multiple reviews using the checkboxes and use **Approve**, **Reject**, or **Delete** to handle them in one go. Useful for catching up after a backlog or after importing a CSV. ## Filtering and search The Reviews page supports: - **Status** — pending / approved / rejected / unpublished - **Rating** — 1 through 5 stars - **With photos** — only show reviews that have at least one photo - **Verified only** — only show reviews tied to a real order - **Search** — by author name, email, review title, or review body Combine these to spot specific reviews fast — for example, "pending + 1 star + with photos" to surface low-rating reviews that need extra attention. --- # Auto-publishing reviews > Skip manual approval for high-rated reviews Source: https://help.pasilobus.com/product-reviews/auto-publish-rules App: Product Reviews (on the Shopify App Store as "Pasilobus Product Reviews") Shopify App Store: https://apps.shopify.com/product-reviews-2 App help: https://help.pasilobus.com/product-reviews Section: Moderation and Display Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Manually moderating every review is a chore once you're getting more than a few a week. Auto-publish lets reviews above a star rating you choose go live immediately, while keeping lower-rated reviews in the queue for you to handle personally. ## Turning auto-publish on In the app, go to **Settings > Reviews** and toggle **Auto-publish reviews** on. Then pick the **Minimum rating to auto-publish** — the most common choice is **4 stars and above**. With this setting: - **5★ and 4★ reviews** → auto-approved, instantly visible on the storefront - **3★, 2★, 1★ reviews** → queued for moderation as usual ## Why low-rated reviews stay queued Not because you should hide them — keeping a mix of ratings actually builds trust. The queue is there so you can: - Reply publicly to a low rating before it goes live (turns a negative into a save) - Reach out privately to make it right (refund, replacement, apology) - Verify the reviewer wasn't a competitor or a bot - Spot a real product quality issue that needs fixing A common workflow: get the alert email for negative reviews (see [Merchant notifications](../customizing-emails/merchant-notifications)), reply within a day, then approve. ## Picking the right threshold - **5 stars only** — strictest. Only the rave reviews auto-publish; everything else waits. - **4 and above** — recommended default. Most positive reviews go live fast; you still see anything that might need a response. - **3 and above** — looser. Use this if you have a high-volume store and want minimal moderation. - **All ratings** — same as turning auto-publish off entirely. ## Auto-publish doesn't override your decision Once a review is auto-published, you can still **unpublish**, **edit**, or **delete** it like any other review. Auto-publish only changes whether it appears on the storefront immediately or waits for you. --- # Replying to reviews > Respond publicly to a customer's review from the admin Source: https://help.pasilobus.com/product-reviews/merchant-replies App: Product Reviews (on the Shopify App Store as "Pasilobus Product Reviews") Shopify App Store: https://apps.shopify.com/product-reviews-2 App help: https://help.pasilobus.com/product-reviews Section: Moderation and Display Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Public replies from the store owner are one of the highest-trust signals on a review widget. A thoughtful reply to a negative review often converts the shopper reading it more than a perfect 5-star streak would. The app lets you reply to any review from the admin — the reply shows directly under the customer's review on the storefront. ## Writing a reply - Open the review from the **Reviews** page in your admin - Find the **Merchant reply** field on the review detail page - Write your response and save The reply appears immediately on the storefront under the customer's review, styled as a "Store response" box. ## Updating or removing a reply - To update, just edit the **Merchant reply** field and save again - To remove, clear the field entirely and save ## What makes a good reply - **Personal, not templated** — "Thanks Sarah!" beats "Thanks for your review!" - **Address specifics from the review** — shows you actually read it - **For negative reviews:** acknowledge the issue, apologize where appropriate, explain what you've done or will do, and offer to make it right offline. Don't argue publicly. - **For positive reviews:** brief, warm, and grateful. A one-liner is fine. ## When to reply - **Always** for negative reviews — these are the highest-impact replies - **Often** for positive photo reviews — encourages more photo reviews - **Occasionally** for plain positive reviews — too many "thanks!" replies can feel performative ## Visibility Replies are public. Customers can't reply back through the widget, so this is a one-way "store response." Keep that in mind when handling sensitive situations — for back-and-forth, follow up by email. --- # Reviewer country flags > Show a small country flag next to each reviewer's name as social proof Source: https://help.pasilobus.com/product-reviews/country-flags App: Product Reviews (on the Shopify App Store as "Pasilobus Product Reviews") Shopify App Store: https://apps.shopify.com/product-reviews-2 App help: https://help.pasilobus.com/product-reviews Section: Moderation and Display Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) A small country flag next to each reviewer's name is gentle social proof: it shows shoppers that real people from many places bought the product. The app can capture and display this automatically. No customer addresses are ever stored — only the 2-letter ISO country code. ## Turning it on In the app, go to **Settings > Reviews** and toggle **Show reviewer country flag** on. The flag appears next to the author name in the review widget and the review carousel. ## Where the country comes from The country is captured at the moment the review is submitted, using one of two sources: - **Verified purchase reviews** — country comes from the order's shipping address (most accurate). Falls back to billing address or the customer's default address. - **Storefront-only reviews (guest submissions)** — country comes from the visitor's IP via Cloudflare. Falls back to nothing if the IP can't be resolved. The order-address source is always preferred when available, because it represents where the product actually shipped (not where the customer was browsing from). ## Privacy - The app stores only the 2-letter country code (for example, `US`, `GB`, `JP`) - Full addresses, IP addresses, and city-level data are **never stored** - Customers can't tell which source produced the code — to them, it's just a flag This is enough for Shopify's standard customer data tier — you don't need to request access to "addresses" or other protected fields just to show country flags. ## Disabling If you turn the setting off, no flag appears. The country codes that were already captured stay in the database; they just stop being shown. Turning the setting back on shows them again. --- # Sorting, filtering, and pagination > Control how reviews are listed in the widget Source: https://help.pasilobus.com/product-reviews/sorting-and-pagination App: Product Reviews (on the Shopify App Store as "Pasilobus Product Reviews") Shopify App Store: https://apps.shopify.com/product-reviews-2 App help: https://help.pasilobus.com/product-reviews Section: Moderation and Display Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) The review widget paginates so the product page stays fast even when a product has hundreds of reviews. You control how many show per page and what order they appear in. ## Reviews per page In the theme editor on the **Product Reviews** block, set **Reviews per page** between 3 and 25. Most stores use the default of **10** — long enough to feel substantial, short enough not to slow the page. If you bump this above 15, consider keeping photos on so the longer list stays visually engaging. ## Default sort order Pick the order new shoppers see first: - **Newest first** (default) — shows the most recent reviews on top. Best for stores where review freshness matters (fashion, beauty, anything seasonal). - **Highest rated** — leads with 5-star reviews. Best when you want to lean into social proof, especially early on when you have few reviews. - **Lowest rated** — useful for transparency-first brands. Rarely the right choice for conversions. The default sort applies to the first page load. Customer-facing sort controls (so shoppers can re-sort the list themselves) are on the roadmap. ## Pagination behavior The widget uses numbered page buttons at the bottom of the list. Clicking a page number: - Loads that page's reviews via AJAX (no full page reload) - Smoothly scrolls back to the top of the widget so shoppers can see the new reviews This pattern works well on both desktop and mobile and avoids the "infinite scroll on a product page" anti-pattern that hurts page performance. --- # Helpful voting > Let shoppers upvote the reviews that helped them decide Source: https://help.pasilobus.com/product-reviews/helpful-voting App: Product Reviews (on the Shopify App Store as "Pasilobus Product Reviews") Shopify App Store: https://apps.shopify.com/product-reviews-2 App help: https://help.pasilobus.com/product-reviews Section: Moderation and Display Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Helpful voting lets shoppers upvote the reviews that actually helped them decide. Over time, the most useful reviews bubble to the top — without you having to curate anything. The app tracks votes per visitor so the same person can't stuff the count. ## What customers see Under every review in the widget, there's a small **Was this helpful?** prompt with a thumbs-up button. Clicking it increments the helpful count for that review. The count shows next to the button (for example, "5 found this helpful"). ## How votes are tracked Each visitor can vote once per review. The app tracks votes with a browser-side fingerprint, not a Shopify login — so guest shoppers and logged-in customers both can vote. Voting again on the same review from the same browser is a no-op. ## What this changes on the storefront - The helpful count is purely informational right now — it shows under each review but doesn't re-order the list - A future setting will let merchants sort by "most helpful" by default - Votes are also visible in the admin so you can see which reviews resonate most ## Why helpful voting matters - **Quality discovery** — the reviews that explain *why* someone loved a product tend to outrank the "love it!" reviews over time - **Engagement signal** — shoppers who vote spend more time on the page, which Google notices - **Free moderation** — if a review consistently gets downvoted (when down-voting is enabled), it's a signal to look at it again ## Privacy - Votes are anonymous — no customer identity is attached - The fingerprint is browser-only and not synced across devices - You can clear all votes on a single review from the admin if needed --- # Star ratings in Google Shopping > Submit your product review feed to Google Merchant Center Source: https://help.pasilobus.com/product-reviews/google-shopping App: Product Reviews (on the Shopify App Store as "Pasilobus Product Reviews") Shopify App Store: https://apps.shopify.com/product-reviews-2 App help: https://help.pasilobus.com/product-reviews Section: Moderation and Display Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Google can show your reviews as star ratings on Shopping ads and free product listings. It reads them from a **product review feed**: a file of all your reviews that Google fetches on a schedule. The app builds and updates this feed for you. The feed is on paid plans. ## Find your feed URL In the app, go to **Settings > Google Shopping**. The page shows your feed's URL, a **Copy URL** button, and how many reviews are in the feed. The URL is private to your store; anyone with it can read the same reviews your storefront shows, so share it only with Google. ## Before you start - You need a **Google Merchant Center** account with your products in it. - Google shows product ratings once a store has at least **50 reviews** in its feed. You can submit the feed earlier; ratings appear when you reach 50. - Join Google's **Product Ratings** program with its interest form (linked from Google's instructions on the settings page). ## Submit the feed 1. In Merchant Center, go to **Products & store**, then **Reviews**, then the **Product reviews** tab. 2. Choose **Manage product review sources**, **Add product reviews**, then **Add product reviews from a file**. 3. Pick **Scheduled fetch** and paste your feed URL. 4. Set it to fetch **daily**. Google checks the feed, usually within a few days. Its status shows on the same page in Merchant Center. ## What the feed contains - Every approved, published product review, including low ratings (Google requires all of them). - Not included: store-wide reviews, reviews with no text, and reviews imported from Google, Trustpilot, Facebook, Yelp, Etsy or Amazon (Google does not accept reviews collected on other sites). Reviews you moved from another review app are included. - Reviews that earned the photo or video reward are marked as incentivized. - Each product carries its brand, SKU and barcode (GTIN) from Shopify. Google matches reviews to your products mostly by barcode, so add barcodes to your products for the best match rate. ## Seller ratings Seller (store) ratings in Google Ads are a different program. They come from Google Customer Reviews and a few approved review partners, not from a feed an app can send. To collect store ratings, sign up for **Google Customer Reviews** in Merchant Center. --- # Rich snippets and SEO > Make star ratings appear in Google search results Source: https://help.pasilobus.com/product-reviews/seo-structured-data App: Product Reviews (on the Shopify App Store as "Pasilobus Product Reviews") Shopify App Store: https://apps.shopify.com/product-reviews-2 App help: https://help.pasilobus.com/product-reviews Section: Moderation and Display Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Star ratings in Google search results — the gold stars under your product titles — come from a small piece of code called JSON-LD structured data. The review widget outputs this automatically for every product that has at least one approved review. Done right, it's free organic traffic and click-through lift. ## What it looks like in Google When Google picks up the structured data, your product listing in search shows: - A row of gold stars - The average rating (for example, "4.8") - The total review count (for example, "Based on 137 reviews") This appears in both organic search results and Google Shopping ads. Stores with rich snippets typically see 15–30% higher click-through rates than stores without. ## Turning it on It's on by default. On the **Product Reviews** block in the theme editor, check that **Include SEO structured data** is enabled. Turn it off only if you have another app (or a theme feature) outputting Product/AggregateRating schema for the same products — duplicate markup confuses Google. ## How long until it appears in search Google needs to: - Crawl the updated product page (typically a few days for active stores, longer for new ones) - Decide the structured data is trustworthy (this gets faster as your store ages and your reviews are clearly real) - Choose to show rich snippets (Google decides per query — they don't always show even when valid) Most stores see rich snippets appear within 2–4 weeks of getting their first reviews. If it's been longer, see Troubleshooting → "Star ratings not showing in Google search results yet." ## What's in the structured data For each product with reviews, the widget emits: - **Product** schema (title, image, description, SKU, brand, price, availability) - **AggregateRating** schema (average rating, review count, scale) Google reads this on top of your normal product page content. No theme edits are required. --- # Sending from your own address or domain > Verify your email address (or whole domain) so requests come from your store Source: https://help.pasilobus.com/product-reviews/branded-sender App: Product Reviews (on the Shopify App Store as "Pasilobus Product Reviews") Shopify App Store: https://apps.shopify.com/product-reviews-2 App help: https://help.pasilobus.com/product-reviews Section: Customizing Emails Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) By default, review request emails come from our shared sending address. That works, but customers respond better to emails that look like they're from your store directly. Verifying your own sender address (or your whole domain) keeps emails out of spam folders and builds trust. ## Why verification matters Without verification, emails go out from a shared address with your store name as the display name. Gmail, Outlook, and Apple Mail show a small warning ("via pasilobus.com") that suggests the email might not really be from you. Verified senders show clean — just your store name and address. Verified senders also have better inbox placement, fewer trips to spam, and higher open rates across the board. ## Verifying a single email address Fastest option, no DNS access required. - In the app, go to **Settings > Sender Email** - Enter the address you want emails to come from (for example, `hello@yourstore.com`) - Click **Verify** - Check that inbox — you'll get a confirmation email with a single link to click Once you click the link, the address is verified and immediately becomes the sender for all review request and reminder emails. You can re-verify if you ever want to change the address. ## Verifying a whole domain Better long-term option — you can send from any address at your domain, plus deliverability is stronger. - In the app, go to **Settings > Sender Domain** - Enter your domain (for example, `yourstore.com`) - The app generates three DNS records to add (typically CNAMEs for DKIM) - Add them through your DNS provider (Cloudflare, GoDaddy, Namecheap, etc.) - Click **Verify domain** — the app checks the records and confirms Once a domain is verified, any sender at that domain (`hello@`, `support@`, `reviews@`) works without extra steps. ## What happens if you don't verify The app falls back to a shared sender address. Emails still go out, but with the "via" notice. You can leave it on the default forever — verification is optional but recommended. --- # Editing email subject and body > Customize the wording of review request and reminder emails Source: https://help.pasilobus.com/product-reviews/email-templates App: Product Reviews (on the Shopify App Store as "Pasilobus Product Reviews") Shopify App Store: https://apps.shopify.com/product-reviews-2 App help: https://help.pasilobus.com/product-reviews Section: Customizing Emails Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Every email the app sends — request, reminder, merchant notifications — has a template you can edit. Tweak the wording, add your brand voice, and use placeholders that auto-fill with each customer's details. ## Where templates live In the app, go to **Settings > Email Templates**. You'll see a list of all editable emails: - **Review request** — the initial post-purchase ask - **Review reminder** — the follow-up nudge - **Photo review thank-you** — sent after a photo review with the discount code (when enabled) - **New review notification** — internal alert to you when a review arrives - **Negative review alert** — internal alert when a review is at or below your threshold Click any template to open the editor. ## Editing a template For each template you can edit: - **Subject line** — what shows in the inbox - **Heading** — large text at the top of the email - **Message body** — the main content - **Button text** — what's on the call-to-action button (where applicable) Save and the changes apply to every email sent from that point on. To revert, click **Reset to default**. ## Placeholders You can insert dynamic values that auto-fill per customer. Available placeholders depend on the template: - `{{customer_first_name}}` — first name (falls back to "there" if unknown) - `{{product_name}}` — the product they ordered (first product if multiple) - `{{order_number}}` — the order number with prefix (`#1234`) - `{{shop_name}}` — your store name - `{{review_link}}` — the secure one-click review link (request and reminder emails only) Just type the placeholder inline — `Hi {{customer_first_name}}, how was your {{product_name}}?` — and it gets replaced when the email is sent. ## Preview Each template editor includes a live preview with sample values so you can see the formatting before saving. ## Keep it short The highest-converting review request emails are 2–3 sentences plus a button. Long, formal emails get skipped. Lead with "how was the product?" and end with one clear call to action. --- # Merchant notifications > Get an email when a new review is submitted or a low-rating review comes in Source: https://help.pasilobus.com/product-reviews/merchant-notifications App: Product Reviews (on the Shopify App Store as "Pasilobus Product Reviews") Shopify App Store: https://apps.shopify.com/product-reviews-2 App help: https://help.pasilobus.com/product-reviews Section: Customizing Emails Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) The app can send you (the merchant) an email whenever a new review is submitted, or when a review's rating falls below a threshold you set. Useful for staying on top of moderation without manually refreshing the Reviews page. ## Where to set this up In the app, go to **Settings > Emails**. The merchant notification options are in the Email Notifications section. ## New review notifications Toggle **New review notifications** on to get an email whenever a review arrives. The email includes: - The customer's name and email - The product they reviewed - Their star rating - The review title and body (if any) - A link to open the review in your admin Best for stores doing manual moderation. If you have **Auto-publish** on for most reviews, you may want this notification only for ones that didn't auto-publish — coming in a future release. ## Negative review alerts Toggle **Negative review alerts** on and set the **Negative review threshold** (1, 2, or 3 stars). You'll get a separate, more urgent-looking email for any review at or below that rating. Use this to: - Reply quickly before the review goes live (if auto-publish is off) - Reach out privately to make the customer's experience right - Spot product quality issues before they show up in more reviews Most stores set the threshold to **3 stars** — anything below "neutral" gets the alert. ## Where notifications are sent By default, notifications go to your store's owner email (the one on file in Shopify Admin > Settings > General). You can also change the destination address in **Settings > Account**. ## Turning notifications off Both toggles can be turned off independently. If you're getting too many emails, turning off new-review notifications and keeping only negative-review alerts is a common compromise. --- # AI review summaries > Show a paragraph summarizing what customers commonly say about each product Source: https://help.pasilobus.com/product-reviews/ai-summaries App: Product Reviews (on the Shopify App Store as "Pasilobus Product Reviews") Shopify App Store: https://apps.shopify.com/product-reviews-2 App help: https://help.pasilobus.com/product-reviews Section: AI Features Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Once a product has a handful of reviews, the app can automatically generate a short paragraph summarizing what customers commonly say about it. This shows at the top of the reviews widget so shoppers get the gist without reading every review. ## What the summary looks like The summary is a 2–3 sentence paragraph that reads naturally — for example: > "Most customers love the fit and the bold colors, though several mention the sizing runs small. Returning buyers consistently praise the quality and recommend ordering one size up." It's drawn from the actual review content, so it stays accurate to what customers wrote. Sentiment, common themes, and recurring praise or complaints all show through. ## When summaries appear A summary is generated only when a product has enough reviews to summarize meaningfully — typically **at least 5 approved reviews**. Below that, the widget doesn't show a summary at all (no point summarizing 1 review). ## Refresh schedule Summaries refresh: - The first time a product crosses the minimum review threshold - Whenever a new approved review comes in (with throttling so it doesn't refresh on every single review) - On demand from the product detail page in your admin You don't need to do anything to trigger them. ## What gets summarized Only **approved, published** reviews count. Pending and rejected reviews are ignored — you won't accidentally surface content from reviews you chose to hide. ## When summaries are hidden The summary won't show if: - Fewer than 5 approved reviews exist - All approved reviews are too short to summarize (one-word reviews) - The summary couldn't be generated for any reason (silent fallback — the widget just skips the summary section) --- # Shopify Flow triggers > Use Flow to send your own email, SMS, or Slack alert when a review event happens Source: https://help.pasilobus.com/product-reviews/shopify-flow App: Product Reviews (on the Shopify App Store as "Pasilobus Product Reviews") Shopify App Store: https://apps.shopify.com/product-reviews-2 App help: https://help.pasilobus.com/product-reviews Section: Integrations Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Shopify Flow lets you build custom automations triggered by store events. The app sends review events to Flow as triggers, so you can do things like "post to Slack when a 1-star review comes in" or "send an SMS when a review request is due" without writing any code. Flow triggers are part of the Premium plan. ## Turning Flow triggers on In the app, go to **Settings > Email requests** and tick **Send Shopify Flow triggers** under **Shopify Flow**, then save. On the Free plan the option is shown locked with an **Upgrade** link. ## Available triggers - **Review submitted** - fires when a shopper submits a review, before moderation. Carries the rating, title, text, author, product and whether it is a verified purchase or has photos. Add a Flow condition on the rating to react only to low ratings. - **Review request due** - fires when a customer is due their review request. Use it to send an SMS through Postscript, Klaviyo SMS or Attentive instead of, or as well as, the email. - **Review reminder due** - fires when the follow-up reminder is due. Same use as above. ## Building a Flow workflow In Shopify Admin: - Go to **Apps > Shopify Flow** - Click **Create workflow** - Pick a trigger from the list: they are listed under **Product Reviews** - Add an action: send an email, post to Slack, send an SMS through an SMS app you've installed, create a task, and so on - Turn the workflow on The app fires the trigger; Flow runs the action. ## Common patterns - **Negative review alarm** - `Review submitted` with the condition rating at most 2 → post to a Slack `#alerts` channel with the review details - **SMS review requests** - `Review request due` → send an SMS with the review link through your SMS app - **Celebrate 5-star reviews** - `Review submitted` with the condition rating equals 5 → notify your team --- # Importing reviews from another app > Bring existing reviews from Judge.me, Loox, or any source via CSV Source: https://help.pasilobus.com/product-reviews/csv-import App: Product Reviews (on the Shopify App Store as "Pasilobus Product Reviews") Shopify App Store: https://apps.shopify.com/product-reviews-2 App help: https://help.pasilobus.com/product-reviews Section: Integrations Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Switching from another review app? You don't have to start from zero. The app accepts a CSV import of existing reviews — Judge.me, Loox, Yotpo, Stamped, or any other source you can export from. Imported reviews are auto-approved and published immediately. ## Where to import In the app, go to the **Reviews** page and click **Import**. You'll be prompted to upload a CSV file. ## CSV format The CSV must have a header row. These columns are required: - `product_id` — the Shopify product ID the review is for - `rating` — integer 1 through 5 - `author` — reviewer name (a "name" column also works) - `email` — reviewer email (used for verified purchase matching) - `body` — the review text (a "review" column also works) Optional columns: - `title` — review title - `date` — submission date (any standard format; defaults to today if missing) Extra columns are ignored, so you can keep them in your source export. ## Getting your product IDs Shopify product IDs are the long numeric ID, not the handle. To get them: - In Shopify Admin, open a product - Look at the URL — the ID is the long number (for example, `/admin/products/7654321098765`) If your source export uses product handles instead of IDs, you'll need to map them. The easiest way is to export your Shopify products list, look up each handle, and add the matching ID to your review CSV before uploading. ## What happens after upload The import runs in the background: - Each row becomes a review on the matching product - All imported reviews are marked **approved** and **published** (visible on the storefront immediately) - The source is marked as **import** so you can identify them later in admin filters - Average ratings on each product are recalculated and synced to Shopify metafields The Reviews page refreshes when the import completes. Larger imports (1000+ rows) may take a couple of minutes. ## Re-running an import safely If you re-upload the same CSV, duplicate detection prevents the same review (same product + same email) from being added twice. So it's safe to re-run after fixing a column. --- # Exporting your reviews > Download all your reviews as a CSV — useful for backups or moving to another app Source: https://help.pasilobus.com/product-reviews/csv-export App: Product Reviews (on the Shopify App Store as "Pasilobus Product Reviews") Shopify App Store: https://apps.shopify.com/product-reviews-2 App help: https://help.pasilobus.com/product-reviews Section: Integrations Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) You own your reviews. The app makes it easy to export every review as a CSV — useful for backups, data analysis, or moving to another platform. ## Exporting In the app, go to the **Reviews** page and click **Export**. The CSV downloads immediately to your browser. ## What's in the CSV Every approved, pending, and rejected review is included with these columns: - `product_id` — Shopify product ID - `product_title` — product name at time of export - `rating` — 1 through 5 - `title` — review title (may be empty) - `body` — review text - `author` — reviewer name - `email` — reviewer email - `status` — pending / approved / rejected - `verified_purchase` — true or false - `date` — submission date in ISO format - `source` — app / import / storefront (where the review came from) The CSV is UTF-8 encoded so non-Latin characters and emojis stay intact in Excel, Google Sheets, and Numbers. ## Common uses - **Backups** — export monthly and keep a copy. Useful if you ever change apps. - **Analytics** — pivot in a spreadsheet to spot trends (rating distribution by product, reviewer volume by month) - **Migration** — the export format is compatible with the import format, so you can move reviews between stores ## What's NOT in the export For privacy and file-size reasons, the CSV excludes: - Photo URLs and binary photo data - Helpful vote counts - Merchant replies - Country codes If you need any of these, let support know — a richer export format is on the roadmap. --- # The Reviews page > Find, edit, reply to, and bulk-manage every review Source: https://help.pasilobus.com/product-reviews/manage-reviews App: Product Reviews (on the Shopify App Store as "Pasilobus Product Reviews") Shopify App Store: https://apps.shopify.com/product-reviews-2 App help: https://help.pasilobus.com/product-reviews Section: Managing Reviews from Your Admin Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) The Reviews page is the day-to-day hub for everything review-related. Find any review fast, moderate it, reply to it, or update its rating from one place. ## The reviews index Open the **Reviews** page from the app's main nav. You'll see every review in a sortable, filterable table with: - Product name - Star rating - Author name - Review title (truncated) - Status (pending / approved / rejected / unpublished) - Submission date - Verified-purchase badge - Photo indicator (camera icon if the review has photos) ## Filters Filter the list using the controls above the table: - **Status** — pending, approved, rejected, unpublished - **Rating** — 1 through 5 stars - **Verified only** — show only reviews tied to a matched order - **With photos** — show only reviews that include photos - **Source** — app submission, CSV import, or storefront form Combine filters to find specific reviews fast — "pending + 1-star + with photos" surfaces the most urgent moderation items. ## Search Use the search bar to find reviews by: - Author name - Reviewer email - Review title - Review body text Searches are case-insensitive and match partial words. ## The review detail page Click any row in the table to open the review detail page. From here you can: - **Approve / reject / publish / unpublish** the review - **Edit** the title, body, or rating (use sparingly — only for typos or removing personal info) - **Reply** publicly to the review (see [Replying to reviews](../moderation-and-display/merchant-replies)) - **Delete** the review entirely (permanent — can't be undone) - See the review's full metadata: submission date, source, verified status, country code, helpful count ## Bulk actions Tick the reviews you want in the leftmost column, pick an action in **Bulk action** above the table, and click **Apply**: - **Approve selected** — publish all selected at once - **Reject selected** — hide all selected To delete a review, open it and use **Delete** in the title bar. ## Pagination The table paginates server-side, so even with tens of thousands of reviews the page loads instantly. Adjust your filters to narrow the list before paging through. --- # The Products page > See each product's average rating and review count at a glance Source: https://help.pasilobus.com/product-reviews/products-overview App: Product Reviews (on the Shopify App Store as "Pasilobus Product Reviews") Shopify App Store: https://apps.shopify.com/product-reviews-2 App help: https://help.pasilobus.com/product-reviews Section: Managing Reviews from Your Admin Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) The Products page shows every product on your store with its review count, average rating, and recent activity. It's the fastest way to spot which products need attention and which are quietly racking up praise. ## Where to find it Open the **Products** page from the app's main nav. ## What you see Each row in the table shows: - Product image and title - Average star rating (with stars displayed) - Total review count - Date of the most recent review The table is sortable — click any column header to sort by that field. Most stores sort by **review count** to find their most-reviewed products, or by **average rating** to spot underperformers. ## Opening a product's reviews Click any product row to jump to the Reviews page pre-filtered for that product. You'll see only that product's reviews, with the same moderation and reply tools as the main Reviews page. ## Search Use the search bar at the top to find products by name. Useful when you have hundreds of products and need to check a specific one. ## What the app maintains in Shopify For every product, the app keeps two **standard Shopify metafields** up to date: - `reviews.rating` — the average rating (1.0 to 5.0) - `reviews.rating_count` — the total approved review count These are the standard metafields Shopify themes and other apps know how to read. That's how the star rating badges show up on collection pages, how Google rich snippets work, and how any future Shopify app can use your review data without integration work. These metafields update automatically whenever a review is approved, edited, unpublished, or deleted. You don't need to do anything to keep them in sync. --- # Common issues > The widget isn't showing, reviews aren't appearing, or emails aren't sending Source: https://help.pasilobus.com/product-reviews/common-issues App: Product Reviews (on the Shopify App Store as "Pasilobus Product Reviews") Shopify App Store: https://apps.shopify.com/product-reviews-2 App help: https://help.pasilobus.com/product-reviews Section: Troubleshooting Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Most setup issues come from one of a few common causes. Run through the checks below before contacting support — most of these resolve in under a minute. ## The review widget isn't appearing on the product page The widget is a theme block, not automatic. Check: - Open the theme editor (**Online Store > Themes > Customize**) - Open a **Product** template - Confirm the **Product Reviews** block is added to the product section. If not, click **Add block** and choose it from the Apps list. - Save and reload the storefront If the block is there but the storefront still shows nothing, the app embed may not be enabled. See the next item. ## Star badges aren't showing on the collection page Stars on product cards (collection, search and home pages) come from your theme: the app keeps every product's average rating and review count in Shopify's standard rating fields, and the theme shows them on its cards. - In the theme editor, open a collection page and select the product grid section - Turn on **Show product rating** (the name can differ slightly between themes) - Save The app's **Settings > Storefront widgets** page has an **Open theme editor** button for this. If your theme has no such setting, its product cards don't read ratings; reach out to support if your theme needs a small edit. Also: badges only show for products with at least one approved, published review. A product with zero reviews intentionally shows no badge (so your store doesn't display empty stars everywhere). ## A submitted review doesn't appear on the storefront The review is probably in the moderation queue: - Open the **Reviews** page in the admin - Filter by **Status: pending** - If you see the review there, click **Approve** to publish it If you have **Auto-publish** on but the review still went to pending, check the rating against your threshold. Reviews below the minimum auto-publish rating always go to the queue. ## Review request emails aren't sending A few things to check in **Settings > Emails**: - Confirm **Send review request emails** is on - Check the delay days — if you set it to 30 days, you won't see emails go out for orders less than 30 days old - Confirm the order's customer has an email on the order (orders without an email can't receive review requests) - If you verified a sender email or domain, confirm verification is still complete in **Settings > Sender Email** The email is queued at order payment time, so for already-placed orders, the request goes out N days after that payment date — not from when you turned the setting on. ## Star ratings not showing in Google search results yet Rich snippets take time: - Google needs to crawl your updated product pages (a few days for active stores) - Google decides per query whether to show rich snippets — they don't always show - Most stores see rich snippets appear within 2–4 weeks of getting their first reviews Use Google's **Rich Results Test** (search for it) to confirm your structured data is valid. Paste a product page URL and Google will tell you if the AggregateRating data is being detected correctly. If it is, you're set — just wait for Google to surface it. ## Photos aren't uploading Check: - The file is under 10 MB - The format is JPEG, PNG, WebP, or HEIC (videos aren't supported yet) - The customer is using a modern browser (Chrome, Safari, Firefox, Edge — current versions) Very large or very high-resolution photos sometimes time out on slow connections. Re-trying usually works. ## Still stuck? If none of these resolve the issue, contact support with: - Your store URL - The specific product or review that's affected - What you expected to happen - What's happening instead --- # Installation > Install Restock Alerts and add the signup button to your storefront Source: https://help.pasilobus.com/back-in-stock/installation App: Restock Alerts Shopify App Store: https://apps.shopify.com/back-in-stock-reminders App help: https://help.pasilobus.com/back-in-stock Section: Getting Started Last updated: 2026-08-31 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Restock Alerts adds a "Notify me when available" button to your out-of-stock product pages. When you restock a product, your customers get an email automatically. Here's how to get it set up. ## Install the App If you haven't already, install Restock Alerts from the Shopify App Store. Once installed, you'll land on the app dashboard where a short setup guide walks you through getting the widget onto your storefront. ## Add the Widget to Your Product Pages The signup widget is a theme app block that lives on your product pages. The setup guide takes you directly to the right place: - **Choose your theme** — Select the theme your customers currently see. If you're testing, you can pick an unpublished theme first. - **Add the widget** — Click **Add product widget**. Your theme editor opens on a product template with the **Restock Alerts** block added at the bottom of the product section. Click **Save**. You can drag it right under the **Buy buttons** block so the editor preview matches your store. Placement: when a variant is sold out, your theme's buy button stays where it is and reads **Sold out**, and the notify button appears right under it. On your live store, a block that sits anywhere below the buy buttons (even at the bottom of the section, below the description or accordions, as Shopify adds it in Horizon and Dwell) moves up to sit directly under them. If you place the block above the buy buttons, it stays there. The theme editor always shows the block where you put it. That's it — there is no separate confirmation step. The app detects the widget on your published theme and the setup guide checks itself off. If you placed it on an unpublished theme, the guide finds it there too (it checks your three most recently edited draft themes). Remove the block from every theme and the step unticks. The widget only appears when the selected variant is sold out, so it's safe to have on every product page. In the theme editor, the block's **Button alignment** setting controls whether the notify-me button sits left, centered, or right within its section. ## Design Your Widget The theme editor only places the widget. How it looks — popup, slide-over or inline style, colors, and the privacy note — is customized in the app on the **Design** page. The restock email is edited in **Settings > Customer emails**. The setup guide's second step takes you straight there, and changes apply to your storefront instantly. ## Speed and your theme A slow store loses sales, so Restock Alerts keeps its storefront part small. Here is exactly what it adds, so you can judge the performance cost yourself. It adds nothing to your theme's code and has no app embed: the whole storefront part is the **Restock Alerts** block, which Shopify only allows on product pages. Your home page, collections and cart load nothing from the app. - On a product page with the block, Shopify loads the block's script (under 4 KB compressed) and a small stylesheet from its own CDN, without holding up the rest of the page. - The form's wording and the product's variants arrive with the page itself, and the block checks stock with your store's own product data. It contacts our servers only when a shopper submits the form, so the page never waits on us to load. ## Verify It's Working To check the widget is live: - Go to your storefront and open a product where at least one variant (size, colour, etc.) is sold out. - You should see your theme's **Sold out** button with a "Notify me when available" button right under it. - Click it — a form should appear asking for the customer's email address. If the button isn't showing, see [The Notify Me Button Is Not Showing](https://help.pasilobus.com/back-in-stock/button-not-showing). --- # How Restock Alerts Works > Understand the customer journey from signup to purchase Source: https://help.pasilobus.com/back-in-stock/how-it-works App: Restock Alerts Shopify App Store: https://apps.shopify.com/back-in-stock-reminders App help: https://help.pasilobus.com/back-in-stock Section: Getting Started Last updated: 2026-09-01 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Restock Alerts handles the full process of collecting customer interest and sending restock emails — so you don't have to do it manually. ## The Customer Journey - A customer visits a product page and finds their preferred size or variant is sold out. - They click "Notify me when available" and enter their email address. - The form only lists variants that are sold out, so nobody signs up for something they can already buy. - Guests receive a quick confirmation email and must click its link (within 24 hours) before an alert can reach them. Shoppers logged in to your store are confirmed automatically. The confirmation email carries your Brand logo and colours and names the product. This keeps your list to real, willing shoppers and protects your sending reputation. - Their signup joins the variant's waitlist in **Campaigns**. The home page shows how many shoppers are waiting and how many have confirmed. ## When a Product Restocks - When a variant can be bought online again, the app sends the alerts. That's when you add stock at a location that sells online, or when you turn on **Continue selling when out of stock**. - Stock added only at a location that doesn't sell online keeps the alerts waiting, because shoppers still couldn't buy it. - The app also re-checks waiting products every few hours, so a restock is never missed. - Every shopper who signed up and confirmed their email gets an email letting them know it's available again. - The email includes a direct link back to the product so they can buy straight away. - If you've set up an **Alert Offer**, a discount code is included in the email to give customers an extra nudge to purchase. ## Who the Email Comes From - No setup is needed. Alert emails send from our authenticated domain with your store's name as the sender, and replies go to your store's contact email. - To fully white-label the From line, open **Settings > Emails** and verify your own address. You confirm the inbox with a link we send, and add three DNS records so the emails authenticate from your domain. - Until both checks pass, emails keep sending from our domain so nothing is delayed. ## After the Notification - Once a shopper is notified, the campaign shows them as *Sent*, then *Delivered* (or *Bounced*), and the campaigns list shows how many alerts went out. - If a shopper no longer wants to be notified, they can unsubscribe at any time using the link in the email. ## Email Only Restock alerts are sent by email. Text message (SMS) and push alerts are not available. ## Restock Alerts and Wishlists Restock Alerts is for any shopper who lands on a sold-out variant: they leave their email right on the product page, with no account or wishlist needed. Our Wishlists app also sends back-in-stock emails (on its Pro plan and higher), but only to shoppers who saved the product to a wishlist and whose email it has. The two apps don't share signups, so a shopper who uses both gets an email from each. --- # Plans and Limits > The four plans, what counts as a restock alert, and what happens at the monthly limit Source: https://help.pasilobus.com/back-in-stock/plans-and-limits App: Restock Alerts Shopify App Store: https://apps.shopify.com/back-in-stock-reminders App help: https://help.pasilobus.com/back-in-stock Section: Getting Started Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Restock Alerts has four flat plans. Every plan includes every feature; plans differ only in how many restock alerts can go out each month. Nothing is ever billed per alert. ## Plans | Plan | Price | Restock alerts a month | |---|---|---| | **Free** | $0 | 50 | | **Pro** | $9.99/month | 1,000 | | **Max** | $24.99/month | 10,000 | | **Ultra** | $49.99/month | Unlimited | A restock alert is one email sent to one shopper when the variant they asked about is back in stock. Signups don't count, only alerts sent. Alerts are email only: text message (SMS) alerts are not available on any plan. If your store is on an older plan (Starter, Growth or Plus), it keeps working at the nearest current plan's limit: Starter as Pro, Growth as Max, Plus as Ultra. ## Following your usage The **Your plan** card on the app's home page shows your plan and this month's count, for example **"320 of 1,000 restock alerts sent this month"**. The bar turns amber at 80%, and a banner appears when you're close to the limit. ## When you reach the limit - New alerts **wait** instead of sending. They're kept, not lost, and nothing extra is charged. - When you upgrade, waiting alerts go out right away. - Otherwise they go out when your next month starts and the count resets. To change plans, click **Upgrade** on the **Your plan** card, or open **Settings > Plan**. --- # Campaigns > See demand per product — who's waiting for a restock, and who was notified once it happened Source: https://help.pasilobus.com/back-in-stock/campaigns App: Restock Alerts Shopify App Store: https://apps.shopify.com/back-in-stock-reminders App help: https://help.pasilobus.com/back-in-stock Section: Features Last updated: 2026-08-30 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Campaigns are how Restock Alerts organizes demand. Every customer who signs up for a restock alert on the same product variant joins that variant's campaign, so instead of a flat list of individual requests you see demand per product — how many people are waiting, and once you restock, how many were notified. ## How a Campaign Works - **A campaign starts automatically** the first time a customer signs up for a product that's out of stock. Every later signup for the same variant joins the same campaign. - **When you restock the product**, the alerts go out to everyone waiting and the campaign completes. Nothing to trigger manually — the app watches your inventory. - **The next signup after a restock starts a fresh campaign**, so each campaign represents one restock cycle and its results stay intact. ## The Campaigns Page Open **Campaigns** from the app navigation. Each row shows: - **Product** — the product and variant the campaign is for - **Status** — *Collecting* (gathering signups), *Sending* (restock detected, alerts going out), or *Completed* (alerts sent) - **Waiting / Notified** — how many customers are waiting, or, once the campaign completed, how many alerts were actually sent (guests who never confirmed their email aren't counted) - **Started and Restocked** — when the first customer signed up and when the restock happened Use the filter buttons at the top to see only collecting or completed campaigns. ## Campaign Details Click a campaign to see everyone on it: - **Subscribers** — each customer's email, signup date, and current status: *Waiting*, *Sent*, *Delivered*, *Bounced*, or *Unsubscribed* - **Unverified** — customers who signed up as guests but haven't confirmed their email yet. Unverified customers are not emailed; they receive a verification email at signup and join the waitlist the moment they click it. Customers who are logged in to your store when they sign up are verified automatically. - **Offer attached** — if an offer matched this campaign's product, it's shown here and included in the alert email - **Place** — while a campaign is collecting, each waiting shopper's place on the list. Alerts go out in this order, earliest signup first. Shoppers see their place when they sign up ("You're #3 in line"), in their storefront language. - **Clicked** — how many shoppers clicked the button in their alert email, and what share of the alerts sent that is. The button takes them to the product page, tagged `utm_source=restock-alerts` so the visits show in your analytics. See **Alert Clicks and Click Rate** for how clicks are counted. ## Send Alerts Now On a collecting campaign with confirmed shoppers waiting, **Send alerts now** emails all of them at once, as if the variant had just come back in stock. Use it when you know the variant can be bought but the app can't see it, for example a pre-order. Shoppers who haven't confirmed their email stay on the list. The alerts count toward your plan like any other. You can do the same from Shopify Flow with the **Send restock alerts now** action (see below). ## Export the Waitlists **Export CSV** on the Campaigns page downloads every signup (filtered like the list): email, name, product, variant, store, status, whether the shopper confirmed their email, their language, and when they signed up, were emailed and clicked. ## Sending Rules In **Settings > Customer emails**, **Sending rules** decide when a restock sends and to how many shoppers: - **Minimum restock** — alerts go out only when at least this many units are back at a location. 1 (the default) sends on any restock. - **Alerts per unit** — email at most this many shoppers for each unit restocked, earliest signups first. The rest move to the variant's next campaign and keep their place for the next restock. 0 (the default) emails everyone. Both rules apply to restocks the app sees through your inventory. **Send alerts now**, the Flow action and variants that become buyable through "Continue selling when out of stock" email every confirmed shopper. ## Shopify Flow, Klaviyo and Omnisend Restock Alerts sends three Flow triggers: **Shopper joined restock waitlist**, **Restock alert sent** and **Restock alert clicked**. Each includes the product, variant, shopper email, product link, product and variant IDs, and the shopper's language. To sync waitlist shoppers to Klaviyo or Omnisend, build a workflow that starts with one of these triggers and adds the Klaviyo or Omnisend action that adds or updates a profile (install their Flow connector first). The **Send restock alerts now** action takes a variant ID and emails everyone waiting for it. In a workflow that starts with a Restock Alerts trigger, pass the trigger's `{{variantId}}`. **Ready-made templates:** in Shopify Flow, open **Templates** and search for "restock". *Text shoppers when a waitlisted item is back in stock* sends an SMS through Shopify Messaging to waitlisted shoppers who are subscribed to SMS marketing (install Shopify Messaging and create the message first). There are also templates to tag waitlist customers and to email your team when a waitlist reaches 10, 25, 50 or 100 shoppers. ## On the Product Page in Shopify The **Restock waitlist** card on a product's page in your Shopify admin shows how many shoppers are waiting for each sold-out variant, how many confirmed their email, and how many alerts the last restock sent. If you don't see it, click **Add block** at the bottom of the product page and choose **Restock waitlist**. ## Reading the Results - A completed campaign with a high notified count tells you which restocks converted the most waiting demand. - A collecting campaign with many waiting customers is a restock signal — those are sales waiting on inventory. - Bounced entries usually mean a mistyped email address; the customer can simply sign up again with the correct one. --- # Alert Clicks and Click Rate > See how many shoppers click the button in their restock alert, and what the click rate means Source: https://help.pasilobus.com/back-in-stock/alert-clicks App: Restock Alerts Shopify App Store: https://apps.shopify.com/back-in-stock-reminders App help: https://help.pasilobus.com/back-in-stock Section: Features Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Restock Alerts counts how many shoppers click the button in their alert email, so you can see whether your alerts bring people back to the product. ## What counts as a click - Every alert email has a **Shop now** button. It goes through a short Restock Alerts link and then on to the product page, with the restocked variant already selected. - The app records the **first click** from each alert. A shopper who clicks the same email three times counts once. - A click is a visit to the product page, not an order. Restock Alerts doesn't know whether the shopper went on to buy. ## Where to see clicks - **Home page: Alert clicks (30 days).** How many alerts sent in the last 30 days were clicked, and the click rate under it ("20% of alerts sent"). - **Campaign page: Clicked.** On a completed campaign, how many shoppers clicked their alert and what share of the alerts sent that is. - **Export CSV** on the Campaigns page has a `clicked_at` column with the time of each shopper's first click. ## How the click rate is worked out The click rate is clicks divided by alerts sent, as a percentage. Only alerts that actually went out count: shoppers who never confirmed their email weren't emailed, so they aren't in the rate. On the home page both numbers cover alerts sent in the last 30 days, so a click on an older alert doesn't count there. ## Clicks in your analytics The product link is tagged `utm_source=restock-alerts`, `utm_medium=email` and `utm_campaign=back-in-stock`. In Shopify Analytics, or any analytics tool that reads UTM tags, these visits show up as their own source, and you can follow them through to orders there. ## Act on clicks with Shopify Flow The **Restock alert clicked** Flow trigger runs on each first click. It includes the product, variant, shopper email, product link, product and variant IDs, and the shopper's language. Use it, for example, to tag the customer or add them to a Klaviyo or Omnisend list for a follow-up. ## Ask Sidekick Shopify Sidekick can read the same numbers: ask "How many people clicked my restock alerts this month?" or "What's my restock alert click rate?". ## Reading the click rate - A high rate with few sales usually points at the product page: price, stock left or shipping. - A low rate can mean the restock came long after the signup. An alert offer (a discount code in the email) can help. - Alerts that land in spam aren't clicked. If the rate drops suddenly, check **Customers Are Not Receiving Notifications**. --- # Alert Offers > Add a discount code to your back-in-stock emails to encourage customers to buy Source: https://help.pasilobus.com/back-in-stock/alert-offers App: Restock Alerts Shopify App Store: https://apps.shopify.com/back-in-stock-reminders App help: https://help.pasilobus.com/back-in-stock Section: Features Last updated: 2026-08-29 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Alert Offers let you include a discount code in your back-in-stock emails. When a product restocks and a customer gets notified, they'll also see an exclusive offer — giving them a strong reason to buy straight away instead of waiting. ## Creating an Offer Go to **Alert Offers** in the app menu and click **Create offer**. Fill in: - **Title** — an internal name for the offer, so you can identify it later (customers don't see this). - **Description** — a short line explaining the offer, shown in the email (e.g. "Welcome back — here's 10% off your order"). - **Discount code** — enter an existing discount code from your Shopify store, spelled exactly as it is there. The app doesn't create codes and can't check that a code exists, so set it up in Shopify first under **Discounts** (the **Open Discounts** link under the field takes you there), then paste it here. - **Start date** — when the offer becomes active. Leave blank to make it available immediately. - **Expiry date** — when the offer expires. Add a deadline to create urgency (e.g. "Offer expires in 48 hours"). ## Linking an Offer to Products Once you've created an offer, you can attach it to specific products. When a customer signs up for any of those products and gets notified, they'll receive the offer in their email. To link products to an offer, open the offer and use the **Add products** option to select which items it applies to. ## Tips for Getting the Best Results - **Use a real discount code** — always create the code in Shopify first and test it before attaching it to an offer. - **Set an expiry date** — limited-time offers convert better than open-ended ones. - **Keep the description short** — one sentence is enough. The customer is already motivated; you just need to seal the deal. --- # Translations > Customise the text customers see in any language Source: https://help.pasilobus.com/back-in-stock/translations App: Restock Alerts Shopify App Store: https://apps.shopify.com/back-in-stock-reminders App help: https://help.pasilobus.com/back-in-stock Section: Features Last updated: 2026-08-31 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) The text shoppers see — the signup button, the popup or inline form, the confirmation message and the restock email — can be changed to fit your brand, in your store's language. ## Your Shoppers' Language Restock Alerts follows the language each shopper browses your store in: - **The signup form** shows in the shopper's storefront language for every language your store publishes (Settings > Languages in Shopify). The app ships its text in 49 languages; a language it doesn't ship shows your store's own language. - **The confirmation and restock emails** go out in the language the shopper signed up in, subject line included. - **Your edits win in your store's language.** Text you change in **Settings > Customer emails** is what shoppers in your store's language see. Shoppers in other languages see the app's wording in their language. - The **Privacy policy** link and the per-store lines shown with our Nearby Stock app follow the shopper's language too. ## What Can Be Changed - **Signup button** — the label on the "Notify me when available" button on product pages - **Signup form** — the heading, description, placeholder text and submit button - **Confirmation message** — what shoppers see after they submit the form - **Restock email** — the subject line, heading, message and button, edited in **Settings > Customer emails** ## How to Edit the Text - Email wording: open **Settings > Customer emails** and edit the fields next to the live preview. - Form wording: open **Settings > Customer emails > Advanced editor (HTML)** and follow the link to the translations page, where each text field can be edited. ## Tips - **Keep button text short** — "Notify me" or "Alert me" works better on mobile than longer phrases. - **Match your brand voice** — the default text is neutral, so feel free to make it your own. --- # Per-Store Alerts with Nearby Stock > Let shoppers ask to hear when an item is back at their own store Source: https://help.pasilobus.com/back-in-stock/per-store-alerts App: Restock Alerts Shopify App Store: https://apps.shopify.com/back-in-stock-reminders App help: https://help.pasilobus.com/back-in-stock Section: Features Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) If you also use our Nearby Stock app, Restock Alerts can alert shoppers when an item is back at the store they chose, not just when it is back somewhere. It turns on by itself: there is nothing to connect or configure. ## What shoppers see - Nearby Stock lets shoppers pick their store. When they have picked one, the signup form on your product page reads "Notify me when it's back at Pearl District" instead of the usual wording. - A link under the form lets them switch to **Any store instead**, and back to **Only at Pearl District**. - If they change their store in Nearby Stock, the form follows straight away. - Shoppers who have not picked a store, and stores without Nearby Stock, see the form exactly as before. ## How the alerts are sent - A shopper who asked for one store is emailed only when that store's stock for the variant goes above zero. Stock arriving at another location does not trigger their alert. - Shoppers who chose any store are emailed as soon as the variant is back at any location, as always. - Store alerts say where the item is: the subject reads "Back in stock at Pearl District", and the email names the store. ## Per-store waitlists in Campaigns - Signups for the same variant and the same store are grouped into one campaign, so each store has its own waitlist. - In **Campaigns**, a store badge shows which store a campaign is for. Campaigns without a badge are for any store. - The store also appears on the campaign page, and in customer data exports. ## Custom subjects and templates - If you write your own email subject, you can include the store name with `{location_name}`. - In custom email templates, use `{{location_name}}`. - For alerts without a store, both are left empty. ## Plans - Per-store alerts are included on every Restock Alerts plan and every Nearby Stock plan. - Each email counts toward your monthly alert allowance, the same as any other alert. --- # The Notify Me Button Is Not Showing > Steps to take if customers cannot see the signup button on out-of-stock products Source: https://help.pasilobus.com/back-in-stock/button-not-showing App: Restock Alerts Shopify App Store: https://apps.shopify.com/back-in-stock-reminders App help: https://help.pasilobus.com/back-in-stock Section: Troubleshooting Last updated: 2026-08-30 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) If customers can't see the "Notify me when available" button on out-of-stock products, there are a few things to check. ## 1. Check That the Widget Is Added to Your Theme The most common reason the button doesn't appear is that the product widget hasn't been added to your theme. - In the app, go to **Settings** and look at the installation status. - If it shows **Not installed**, click the link to open your Shopify theme editor on a product template. - Add the **Restock Alerts** product widget block where you want it (under the Add to Cart button works well). - Click **Save** in the theme editor. ## 2. Check the Product Is Actually Out of Stock The button only appears when a product variant has zero inventory and your store is set to stop selling when out of stock. - In Shopify, go to the product and check the inventory for the variant in question. - Make sure **"Continue selling when out of stock"** is **not** ticked — if it is, Shopify keeps showing the Add to Cart button and the notify button won't appear. ## 3. Check You're Looking at the Right Theme If you have multiple themes, make sure the widget was added to the theme that's currently published (live) to your store. - In Shopify, go to **Online Store → Themes**. - The published theme has a green **Current theme** badge. Make sure the widget block is on that theme's product template. ## 4. Try a Hard Refresh If you just made changes, your browser may be showing a cached version of the page. Try opening the product page in a private/incognito window or pressing Ctrl+Shift+R (Cmd+Shift+R on Mac) to force a refresh. ## 5. Test With a Specific Variant If your product has multiple variants (sizes, colours, etc.), only the variants that are out of stock will show the button. Make sure you're selecting a variant that has no inventory. --- # Customers Are Not Receiving Notifications > What to check if back-in-stock emails are not being delivered Source: https://help.pasilobus.com/back-in-stock/notifications-not-sending App: Restock Alerts Shopify App Store: https://apps.shopify.com/back-in-stock-reminders App help: https://help.pasilobus.com/back-in-stock Section: Troubleshooting Last updated: 2026-08-29 Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) If shoppers are signing up but not receiving their restock emails, work through these checks in order. ## 1. Check the Shopper Confirmed Their Email Shoppers who sign up as guests get a confirmation email first, and alerts only go to shoppers who clicked the link in it. This is the most common reason an alert didn't arrive. - Open **Campaigns** and click the product's campaign. Each shopper shows whether they're **Verified**. - A shopper who hadn't confirmed at the restock gets the alert as soon as they click the link (the link is valid for 24 hours; after that they can sign up again). - Shoppers who are logged in to your store when they sign up are confirmed automatically. - The confirmation email comes from your store: your Brand logo and colours, your store name, and the product the shopper asked about, in their language. - The campaign page and the **Restock waitlist** card on the product page say how many of them have confirmed. ## 2. Check the Variant Can Be Bought Online Alerts go out when Shopify says the variant can be bought again, not just when a number changes. - Stock added at a location that doesn't sell online (a warehouse or a store not on your Online Store) leaves the product sold out on your storefront, so no alert is sent yet. - Turning on **Continue selling when out of stock** makes the variant buyable without any stock, and the waitlist's alerts go out. - The app also re-checks waiting products every few hours, so a restock it missed is picked up without you doing anything. ## 3. Check the Campaign's Status Open **Campaigns** and find the product: - **Collecting** — the app hasn't seen the variant come back yet. See step 2. - **Sending** or **Completed** — alerts went out. Open it to see each shopper's status: *Sent*, *Delivered*, *Bounced* or *Failed*. - **Bounced** usually means a mistyped address; the shopper can sign up again with the right one. ## 4. Check You Haven't Reached Your Monthly Limit Each plan sends a set number of restock alerts a month (Free 50, Pro 1,000, Max 10,000, Ultra unlimited). At the limit, new alerts wait instead of sending. - On the app's home page, the **Your plan** card shows this month's count, for example **"50 of 50 restock alerts sent this month"**. - Waiting alerts go out as soon as you upgrade, or when your next month starts. They aren't lost, and nothing extra is charged. ## 5. Ask the Shopper to Check Their Spam Folder Restock emails can occasionally land in spam, especially with strict email providers. Ask them to check their **Spam** or **Junk** folder and search for your store name. Verifying your own sending address in **Settings > Customer emails** also helps delivery. Restock alerts are sent by email only. Text message (SMS) alerts are not available. --- # Installation > Turn on the SEO Turbo app embed and get your first SEO audit Source: https://help.pasilobus.com/turbo/installation App: SEO Turbo Shopify App Store: https://apps.shopify.com/pasilobus-turbo App help: https://help.pasilobus.com/turbo Section: Getting Started Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) SEO Turbo audits every product, collection, page and blog post in your store, writes better search titles and meta descriptions with AI, finds broken links and redirects them, adds structured data (schema) for rich results, and shows you what AI assistants like ChatGPT read about your store. Setup takes a couple of minutes: turn on the app embed, and your first audit runs on its own. ## Install the app Install SEO Turbo from the Shopify App Store and open it from your Shopify admin. As soon as the app is installed, it starts your first **content audit** in the background. You don't need to click anything. Results usually appear within a minute or two. ## Turn on the app embed The setup guide on the home page walks you through the storefront part. The **SEO Turbo** app embed adds structured data to your pages and reports the pages visitors can't find. The app needs it for everything that happens on your storefront. 1. In the setup guide, pick the theme to install on. Your live theme is selected by default. 2. Click **Activate app on theme**. The theme editor opens with **SEO Turbo** under **App embeds**. 3. Make sure the toggle is on, then click **Save** in the theme editor. The app embed has no settings of its own. Everything is configured in the app, and your changes reach the storefront automatically. If you later switch to a different theme, turn the app embed on in that theme too. ## Add the FAQ block (optional) The next step adds the **FAQ (SEO Turbo)** block, a visible list of questions and answers with matching FAQ structured data. It's optional and part of the Max plan and up. See [FAQ Block](../features/faq-block.md). ## Review your first SEO audit The last step, **Review your first SEO audit**, takes you to **SEO content**. There you'll see a score for every item, the pages that need the most work, and **Write with AI** to get a new title and description for any of them. After that, it's worth taking a look at: - **Broken links** - run **Scan for broken links** to find links that lead nowhere - **Schema** - check which structured data types are on and fill in your business details - **AI discovery** - run **Check AI discovery** to see what AI assistants find on your store ## Finding the setup guide later The setup guide stays on the home page until every step is done. You can open it again at any time from **Settings > Installation**, for example after switching themes. --- # Dashboard Overview > What the numbers on the home page mean and where each one leads Source: https://help.pasilobus.com/turbo/dashboard-overview App: SEO Turbo Shopify App Store: https://apps.shopify.com/pasilobus-turbo App help: https://help.pasilobus.com/turbo Section: Getting Started Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) The SEO Turbo home page tells you whether your store's SEO is in good shape and what to fix next. It fills in after your first content audit. Every number links straight to the list behind it. ## The four numbers - **Average SEO score** - the average score of every item audited, out of 100. Click it to open **SEO content**. - **Need attention** - how many items score below 70, out of the total audited. Click it to see the lowest scores first. - **Open broken links** - broken links that haven't been redirected or ignored yet. Click it to open **Broken links**. - **AI rewrites left this month** - how many AI rewrites your plan still has this month, out of the monthly allowance. ## Banners - **AI suggestions waiting for review** - AI has written titles and descriptions that you haven't applied yet. Click **Review suggestions** to go through them. - **Visitors hit missing pages** - real shoppers landed on pages that don't exist. Click **Fix broken links** to redirect them before you lose more traffic. ## Most common issues This list shows the five issues found most often across your store, with how many items have each one. Fixing one of them usually lifts many scores at once. **Fix the lowest scores first** opens the items that need the most work. [SEO Scores and Issues](../features/seo-scores.md) explains every issue. ## Audits This list shows each of the four audits and when it last ran: - **Content audit** - scores your products, collections, pages and blog posts - **Broken link scan** - checks the links on your store - **Theme review** - checks your theme's code and pages (Pro and up) - **AI discovery check** - checks what AI assistants and crawlers can read Click an audit to open its page and run it again. Your current plan is shown below the list. ## Finding your way around The app menu in the Shopify admin has one page for each area: **SEO content**, **Broken links**, **Schema**, **AI discovery**, **Theme review** and **Settings**. --- # Plans and Pricing > What Starter, Pro, Max and Ultra include and their limits Source: https://help.pasilobus.com/turbo/plans-and-pricing App: SEO Turbo Shopify App Store: https://apps.shopify.com/pasilobus-turbo App help: https://help.pasilobus.com/turbo Section: Getting Started Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) SEO Turbo has four plans. Every plan includes the content audit, AI rewrites, broken link monitoring with redirects, core schema and the AI discovery check. Higher plans raise the limits and unlock more features. Every plan comes with a 7-day free trial, and development stores use the app for free. ## Plans at a glance - **Starter** - $4.99/month - **Pro** - $9.99/month - **Max** - $24.99/month - **Ultra** - $49.99/month ## Limits - **Items audited** - Starter 150, Pro 2,000, Max 20,000, Ultra unlimited - **AI rewrites per month** - Starter 25, Pro 300, Max 1,500, Ultra 6,000 - **Links checked per scan** - Starter 250, Pro 2,500, Max 20,000, Ultra 50,000 - **Redirects per month** - Starter 25, unlimited on Pro and up When your store has more items than your plan audits, SEO Turbo audits the most recent ones. The AI rewrite and redirect allowances reset at the start of each calendar month. ## What each plan includes - **Starter** - content audit and SEO scores, AI rewrites, broken link scan, visitor 404 tracking, redirects, Product, Organization, Breadcrumbs and Website schema, AI discovery check, weekly automatic re-audit - **Pro** - everything in Starter, plus bulk AI rewrite and apply, Theme review, the llms.txt generator, AI crawler rules for robots.txt, Collection, Blog post and Site search box schema, and a daily automatic re-audit - **Max** - everything in Pro, plus FAQ, Local business and Return policy schema, the FAQ block, checks for links to other websites and images, and a rescan whenever a product or collection changes - **Ultra** - everything in Max, plus Custom JSON-LD and unlimited items audited Every plan gets the app in all its languages. ## Stores on the Free plan Starter replaced the Free plan on November 9, 2026. Stores that installed SEO Turbo before then and haven't chosen a paid plan keep the Free plan's features, the same as Starter's, at no charge. Free is no longer offered to new installs. ## Locked features Features that aren't in your plan stay visible in the app. They show a badge with the plan that unlocks them, for example **Pro plan**, and an **Upgrade** button that takes you to Shopify's plan page. ## Changing plans To upgrade or downgrade, go to **Settings > Billing**. Shopify handles the subscription and the charge appears on your Shopify bill. After a downgrade, schema types that aren't in your new plan stop appearing on your storefront automatically. You don't need to change your theme. Your choices are kept, so if you upgrade again, those types come back the way you left them. --- # SEO Scores and Issues > How each page is scored and what every issue means Source: https://help.pasilobus.com/turbo/seo-scores App: SEO Turbo Shopify App Store: https://apps.shopify.com/pasilobus-turbo App help: https://help.pasilobus.com/turbo Section: Features Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) The content audit reads every product, collection, page and blog post in your store and scores how each one will look in search results. The **SEO content** page lists them all, lowest score first, so you always know what to fix next. ## What the content audit checks The first audit runs by itself right after you install SEO Turbo. After that it runs again automatically (see [SEO Settings](settings.md)), or you can click **Run content audit** on the **SEO content** page at any time. For each item SEO Turbo looks at: - The SEO title (or the page title Shopify uses when no SEO title is set) - The meta description - The amount of text on the page - Image alt text - The URL handle - Whether another item uses the same title or description ## Scores Every item gets a score out of 100. Each issue found lowers the score, and more serious issues lower it more. - **Poor** - under 60 - **Fair** - 60 to 84 - **Good** - 85 and above The **Average score** at the top of the page is the average across everything audited. ## Issues and how to fix them Each issue has a severity: **High**, **Medium** or **Low**. - **No SEO title** (Medium) - Shopify falls back to the page title. Write a title that leads with what people search for. - **Title too short** (Low) - under 30 characters. Aim for 30-60 so it describes the page fully. - **Title too long** (Medium) - over 60 characters. Google cuts titles at about 60, so the end is hidden. - **Duplicate title** (High) - another item uses the same title. Make each title unique. - **No meta description** (High) - Google picks random text from the page instead. Write 120-155 characters that make people click. - **Description too short** (Medium) or **Description too long** (Medium) - aim for 120-155 characters; Google cuts descriptions at about 155-160. - **Duplicate description** (High) - make each description specific to its page. - **No content** (High) - the page has no text, so search engines can't tell what it is about. - **Thin content** (Medium) - fewer words than pages of that type usually need to rank (about 50 for products, 30 for collections, 150 for pages and 300 for blog posts). - **Images without alt text** (Medium) - alt text helps image search and screen readers. Add it in the Shopify admin on the product or page. - **Long URL** (Low) - the URL handle is over 60 characters. Short, readable URLs are easier to share. ## Finding what to fix On the **SEO content** page you can: - Filter by **Type** (product, collection, page, blog post) - Filter by **Score** (Poor, Fair, Good, or **AI suggestion ready**) - **Search** by title or handle Click any item to open it. You'll see a **Search result preview** that shows roughly how the listing looks in Google, and a **What to fix** list with every issue on that item. ## Editing a listing yourself Under **Edit manually** you can type your own **SEO title** and **Meta description** and click **Save to Shopify**. This doesn't use any AI rewrites. The change is written to the product, collection, page or blog post in Shopify and the item is scored again straight away. If you change your mind, click **Undo** to put back the title and description the item had before the last change. Prefer to let AI write it? See [AI Rewrites](ai-rewrites.md). ## Plan limit on items audited Each plan audits up to a set number of items: 150 on Starter, 2,000 on Pro, 20,000 on Max and unlimited on Ultra. If your store has more, SEO Turbo audits the most recently updated items. See [Plans and Pricing](../getting-started/plans-and-pricing.md). --- # AI Rewrites > Let AI write your SEO titles and meta descriptions, then review, apply or undo Source: https://help.pasilobus.com/turbo/ai-rewrites App: SEO Turbo Shopify App Store: https://apps.shopify.com/pasilobus-turbo App help: https://help.pasilobus.com/turbo Section: Features Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) SEO Turbo can write a new SEO title and meta description for any product, collection, page or blog post. You review the suggestion first, and nothing changes in your store until you apply it. ## Writing a suggestion 1. Open **SEO content** and click the item you want to improve. 2. In the **AI rewrite** section, click **Write with AI**. 3. After a few seconds the suggestion appears: a new **SEO title**, a **Meta description**, the **Focus keyword** it targeted and a short note on what changed and why. Items with a suggestion waiting show **Suggestion ready** in the list, and the **AI suggestion ready** filter shows only those. ## Reviewing and applying You can edit the suggested title and description before using them. When you're happy, click **Apply to Shopify**. SEO Turbo writes the new title and description to the item in Shopify and scores it again. Don't like it? Click **Write another version** for a fresh suggestion. ## Undo After applying, click **Undo** to restore the title and description the item had before. If the item had no custom SEO title or description before, Undo removes them again so Shopify goes back to its default. ## What the AI writes - Titles of 30-60 characters that lead with what the page is and the most relevant search phrase - Descriptions of 120-155 characters that say what the shopper gets, ending with a gentle call to action - Text in the same language as the page - Only facts found in your page content. It won't invent prices, discounts, awards, stock levels or shipping promises. ## Brand voice and keywords In **Settings**, you can describe your **Brand voice for AI rewrites** (for example "Warm, playful, no jargon") and list **Keywords to rank for**. The AI uses your keywords only where they fit the page. See [SEO Settings](settings.md). ## Monthly allowance Each suggestion uses one AI rewrite from your plan's monthly allowance: 25 on Starter, 300 on Pro, 1,500 on Max and 6,000 on Ultra. **Write another version** uses another one. The count resets at the start of each calendar month. The home page and the **SEO content** page show how many you have left. If a rewrite fails before it finishes, it doesn't count against your allowance. To write suggestions for many items at once, see [Bulk Rewrite and Apply](bulk-rewrite.md). --- # Bulk Rewrite and Apply > Write and apply AI titles and descriptions for many items at once (Pro and up) Source: https://help.pasilobus.com/turbo/bulk-rewrite App: SEO Turbo Shopify App Store: https://apps.shopify.com/pasilobus-turbo App help: https://help.pasilobus.com/turbo Section: Features Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) On the Pro plan and up, you can write and apply AI titles and descriptions for many items at once from the **SEO content** page. ## Writing suggestions in bulk 1. Open **SEO content**. 2. Tick the items you want to improve, or leave everything unticked to use the 25 items with the lowest scores. 3. Under **Bulk AI rewrite and apply**, click **Write with AI**. SEO Turbo writes the suggestions in the background. The page switches to the **AI suggestion ready** filter, and suggestions appear there as they're ready. You can keep working in the meantime. Nothing is changed in your store at this point. Each suggestion waits for you to review or apply it. ## Applying suggestions in bulk 1. On **SEO content**, choose the **AI suggestion ready** filter to see everything waiting. 2. Open any item to check or edit its suggestion first, if you like. 3. Tick the items to apply, or leave everything unticked to apply every waiting suggestion. 4. Click **Apply suggestions**. A message tells you how many were applied and how many Shopify didn't accept. Up to 100 suggestions are applied per click. ## How the monthly allowance limits a bulk run Each suggestion uses one AI rewrite from your monthly allowance. If you select more items than you have rewrites left, SEO Turbo writes suggestions only for as many as your allowance covers. When the allowance is used up, bulk writing is paused until the next month or until you upgrade. ## Undoing one item Every item keeps its previous title and description. To reverse one change after a bulk apply, open the item and click **Undo**. On the Starter plan, **Write with AI** works one item at a time; the bulk actions show a **Pro plan** badge and an **Upgrade** button. --- # Broken Links and Redirects > Find links that lead nowhere and redirect them in one click Source: https://help.pasilobus.com/turbo/broken-links App: SEO Turbo Shopify App Store: https://apps.shopify.com/pasilobus-turbo App help: https://help.pasilobus.com/turbo Section: Features Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Broken links send shoppers and search engines to pages that don't exist. SEO Turbo finds them two ways and lets you fix most of them with a single redirect. ## How broken links are found - **The broken link scan** - click **Scan for broken links** on the **Broken links** page. SEO Turbo checks the links inside your products, collections, pages and blog posts, and also loads your home page and your most recently updated pages to catch links in menus, footers and sections. It also runs automatically with your re-audits. - **Visitor 404 tracking** - when a real visitor lands on a page that doesn't exist, the SEO Turbo app embed reports it. These appear with **Visitor** under **Found by**, along with how many **Hits** they've had. Links you've already redirected in Shopify count as working. Each plan checks up to a set number of links per scan: 250 on Starter, 2,500 on Pro, 20,000 on Max and 50,000 on Ultra. ## The tabs - **Open** - broken links that still need attention - **Redirected** - links you've redirected, with where they now point - **Ignored** - links you chose to ignore - **Fixed** - links that work again or that nothing links to any more When a later scan finds that a scan-found link works again, it moves to **Fixed** by itself. Visitor-reported links stay open until you redirect or ignore them. ## Redirecting a broken link 1. On the **Open** tab, find the link. **Linked from** shows the page it was found on. 2. Under **Fix**, the **Redirect to** field is filled with the closest match SEO Turbo found in your store, for example a product with a similar handle. 3. Change the target if you like. Enter a path on your store (starting with /) or a full https:// address. 4. Click **Redirect**. SEO Turbo creates the redirect in Shopify (you'll also see it under **Online Store > Navigation > URL redirects**) and moves the link to **Redirected**. ## Ignoring a link If a link doesn't matter, click **Ignore**. You can bring it back with **Reopen**. ## Redirect allowance The Starter plan includes 25 redirects a month. Pro and up have unlimited redirects. The **Broken links** page shows how many you have left this month. ## Links to other websites and images On the Max plan and up, the scan also checks links to other websites and images. These show as **External** or **Image**. Links to other websites can't be redirected from your store, so fix them by editing the page that links there. ## Password-protected stores If your storefront is password protected, the scan can't load your pages. It checks links against your catalog instead, and visitor 404 tracking starts once your store is open. For how the visitor reports work, see [Visitor 404 Tracking](../developers/visitor-404-beacon.md). If a redirect won't save, see [Redirect Not Created](../troubleshooting/redirects-not-created.md). --- # Schema (Structured Data) > Add JSON-LD structured data for rich results without editing theme code Source: https://help.pasilobus.com/turbo/schema App: SEO Turbo Shopify App Store: https://apps.shopify.com/pasilobus-turbo App help: https://help.pasilobus.com/turbo Section: Features Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Structured data (JSON-LD) tells Google exactly what each page is, such as a product with its price and stock, your business, or a blog post, so it can show rich results like prices, availability and breadcrumbs. SEO Turbo adds it through the app embed. You don't edit any theme code. ## Before you start The **SEO Turbo** app embed must be turned on in your live theme. The setup guide on the home page does this for you; see [Installation](../getting-started/installation.md). ## Structured data types Turn each type on or off on the **Schema** page, then click **Save**. Your store shows the change within a minute. - **Product** (all plans) - name, images, brand, SKU, barcode, price and stock for every variant, on product pages - **Organization** (all plans) - your business name, logo and social profiles, on the home page - **Breadcrumbs** (all plans) - the page's position in your store, shown in search results instead of the URL - **Website** (all plans) - your site name on the home page, which Google uses as the site name in results - **Site search box** (Pro and up) - tells Google how to search your store - **Collection** (Pro and up) - collection pages as a list of their products - **Blog post** (Pro and up) - headline, author, dates and image for blog posts - **FAQ** (Max and up) - questions and answers from the FAQ block; see [FAQ Block](faq-block.md) - **Local business** (Max and up) - address, phone and opening hours for a physical store, on the home page - **Return policy** (Max and up) - your return window and fees on every product offer, used by Google Shopping Types that aren't in your plan show the plan that unlocks them. If you downgrade, those types stop appearing on your storefront automatically, and your choices are kept for when you upgrade again. ## Business details These fill in your Organization markup. Leave a field empty to use what Shopify already knows about your store. - **Business name** - **Logo URL** - a square or wide logo image, at least 112×112 pixels - **Short description** - **Customer service email** and **Phone** - **Social profiles** - one https:// link per line (Instagram, Facebook, TikTok, YouTube and so on) ## Physical store Fill this in if customers can visit you. It's used when **Local business** is on: **Street address**, **City**, **State or region**, **Postal code**, **Country code**, **Price range** and **Opening hours**. Write one opening-hours range per line, for example `Mo-Fr 09:00-18:00`. ## Returns Used when **Return policy** is on. Enter your **Return window (days)** and choose **Starter returns** or **Customer pays return shipping**. ## Custom JSON-LD (Ultra) On the Ultra plan you can paste your own JSON-LD, which is printed on every page. It must be valid JSON; SEO Turbo won't save it otherwise. ## Duplicate schema from your theme or other apps Many themes already print some structured data, often Product or Organization. If your theme and SEO Turbo print the same type, search engines see it twice. Run [Theme Review](theme-review.md) (Pro and up): it lists the theme files that print their own JSON-LD and flags types that appear more than once on a page. Turn off that type in SEO Turbo, or remove it from the theme, so each type has one source. For exactly what SEO Turbo prints on each page, see [Structured Data Output](../developers/structured-data-output.md). --- # FAQ Block > Add a visible FAQ with matching FAQ structured data (Max and up) Source: https://help.pasilobus.com/turbo/faq-block App: SEO Turbo Shopify App Store: https://apps.shopify.com/pasilobus-turbo App help: https://help.pasilobus.com/turbo Section: Features Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) The **FAQ (SEO Turbo)** block adds a visible list of questions and answers to any page, with matching FAQ structured data. It's part of the Max plan and up. ## Why the questions must be visible Google only accepts FAQ structured data when the same questions and answers are visible on the page. That's why SEO Turbo uses a block you place on the page, rather than adding FAQ markup behind the scenes. ## Adding the block 1. Make sure **FAQ** is turned on in the **Schema** page in SEO Turbo. 2. In Shopify, go to **Online Store > Themes** and click **Customize** on your live theme. 3. Open the page template where you want the FAQ, for example a product page or your FAQ page. 4. Click **Add block** or **Add section**, then choose **FAQ (SEO Turbo)** under **Apps**. 5. Enter an optional heading and up to six questions with their answers. 6. Click **Save**. The setup guide on the SEO Turbo home page also has a step that opens the theme editor for you. ## How it looks Each question appears as a row that shoppers can click to open the answer. Only questions that have both a question and an answer are shown. The block uses your theme's fonts and colours. ## If the block shows nothing - Check that **FAQ** is on under **Schema** and click **Save**. - Check your plan. On plans below Max the block shows nothing on your storefront. - Make sure at least one question has both a question and an answer. See [Structured Data Not Showing](../troubleshooting/schema-not-showing.md) for more checks. --- # AI Discovery (llms.txt, agents.md and robots.txt) > Control what ChatGPT, Claude, Perplexity and AI shopping agents read about your store Source: https://help.pasilobus.com/turbo/ai-discovery App: SEO Turbo Shopify App Store: https://apps.shopify.com/pasilobus-turbo App help: https://help.pasilobus.com/turbo Section: Features Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) AI assistants like ChatGPT, Claude and Perplexity, Google's AI answers and AI shopping agents all read your store. The **AI discovery** page shows what they see and lets you control it. ## What Shopify serves to AI assistants Shopify publishes these files for every store automatically: - **/agents.md** - Shopify's main description of your store for AI agents - **/llms.txt** - a summary of your store for large language models - **/llms-full.txt** - the longer version of llms.txt - **/robots.txt** - rules for which crawlers may read your store - **/sitemap.xml** - the list of pages search engines should index - **/api/mcp** - Shopify's storefront endpoint that AI shopping agents use to search products and build carts ## The AI discovery check (all plans) Click **Check AI discovery** to see whether each file is available, what your llms.txt says right now, which AI crawlers your robots.txt allows, and how ready your catalog is for AI shopping. The check also runs with your automatic re-audits. ## Why a theme template is needed Shopify only lets you customise llms.txt, agents.md and robots.txt through templates in your published theme. SEO Turbo writes the template for you. You paste it into your theme once, and SEO Turbo checks that it's still there and up to date. ## Writing your llms.txt (Pro and up) Under **Your llms.txt**, describe your store in your own words: - **One-paragraph summary** - who you are and what you sell. Leave it empty to use your store description. - **Who you serve** - **Why shop with you** - one point per line, for example free returns or handmade in Portugal - **Shipping and returns in a sentence** - **Anything else AI assistants should know** - **Collections to list** and **Products to list**, and whether to **List your pages** (About, Contact, FAQ and so on) Click **Save and regenerate**. SEO Turbo combines your text with your chosen collections, products and policies into an llms.txt template. ## Installing the template 1. Click **Copy llms.txt template**. 2. In Shopify, go to **Online Store > Themes**, open the **⋯** menu on your live theme and choose **Edit code**. 3. In the **templates** folder, add a new file named `llms.txt.liquid`, paste and save. To replace both llms.txt and agents.md with your version, name it `agents.md.liquid` instead. 4. Come back and click **Check AI discovery** to confirm it's live. ## Template statuses - **Up to date** - your theme has SEO Turbo's latest template - **Out of date - paste the new version** - you've changed your llms.txt or your catalog since you pasted it. Copy the template again and replace the file. - **Custom (not from SEO Turbo)** - the file exists but wasn't made by SEO Turbo - **Not installed** - Shopify's default is used ## AI crawler rules (Pro and up) The **AI crawlers** table lists the main AI crawlers, the company behind each and what it's used for: - **AI answers and search** crawlers (for example OAI-SearchBot, ChatGPT-User, Claude-SearchBot, PerplexityBot) decide whether your store can be cited in AI answers. Blocking them keeps you out of those answers. - **Model training** crawlers (for example GPTBot, ClaudeBot, Google-Extended, CCBot) only collect training data. Blocking them doesn't affect AI answers. Under **AI crawler rules**, choose **Allow** or **Block** for each, save, then click **Copy robots.txt template** and add it as `templates/robots.txt.liquid` the same way. It keeps Shopify's default rules and adds your choices. ## Catalog readiness for AI shopping AI assistants recommend products they can understand. This section shows how many products have a real description (50 words or more), a meta description, and alt text on all images. Click **Improve the weakest products** to go straight to them. If your store still shows Shopify's default llms.txt, see [llms.txt or agents.md Not Changing](../troubleshooting/llms-txt-not-changing.md). --- # Theme Review > Check your live theme's code and pages the way a search engine sees them (Pro and up) Source: https://help.pasilobus.com/turbo/theme-review App: SEO Turbo Shopify App Store: https://apps.shopify.com/pasilobus-turbo App help: https://help.pasilobus.com/turbo Section: Features Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) Theme review checks your live theme's code and one page of each type the way a search engine sees them. It's part of the Pro plan and up. ## Running a theme review Open **Theme review** and click **Review theme**. It takes a minute or two. The review looks at your published theme only. ## Theme code checks - **Page title tag** - the layout prints the title with `page_title` - **Meta description tag** - the theme prints a meta description from `page_description` - **Canonical URL** - a canonical link in the head - **Social sharing tags (Open Graph)** - without og tags, shared links show no image or title - **X (Twitter) card tags** - for rich previews on X - **Mobile viewport** - required for mobile-friendly pages - **Page language** - the html tag declares the language - **No stray noindex** - flags "noindex" in the theme head so you can make sure it only applies to pages you want hidden - **H1 headings** - product, collection, page and blog post templates each have an H1 heading ## Page checks SEO Turbo loads your home page and one product, collection, page and blog post (the lowest-scoring of each) and checks: - The page loads - **Title** length (aim for 20-65 characters) and **Meta description** length (aim for 70-160) - Exactly **one H1 heading** - A **canonical URL** - A **social sharing image** (og:image) - The page **can be indexed** - **Images have alt text** - **Structured data is valid JSON** - **No duplicate structured data** - the same type printed more than once - The expected structured data is present: Product on product pages, Blog post on blog posts, Organization on the home page ## Pass, Check and Fix Each check shows **Pass**, **Check** or **Fix**. The theme score is the share of checks that pass, with **Check** counting as half. ## Theme files that print their own structured data If any theme files contain JSON-LD, they're listed under **Your theme prints structured data too**. That's only a problem when they print the same types as SEO Turbo. If they do, turn that type off under **Schema** or remove it from the theme. See [Schema (Structured Data)](schema.md). ## Password-protected stores If your storefront is password protected, only the theme code is checked. Page checks run once your store is open. --- # SEO Settings > 404 tracking, automatic re-audits and AI writing preferences Source: https://help.pasilobus.com/turbo/settings App: SEO Turbo Shopify App Store: https://apps.shopify.com/pasilobus-turbo App help: https://help.pasilobus.com/turbo Section: Features Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) SEO Turbo's own settings are in the **SEO Turbo** section of the app's **Settings** page. ## Track pages visitors cannot find When this is on, the app embed reports pages visitors land on that don't exist (404s), so you can redirect them from **Broken links**. Only the missing address is stored, never anything about the visitor. It's on by default. See [Visitor 404 Tracking](../developers/visitor-404-beacon.md). ## Re-audit automatically When this is on, SEO Turbo runs the content audit, the broken link scan and the AI discovery check again on its own: - **Weekly** on the Starter plan (and Free) - **Daily** on Pro and up ## Rescan when a product or collection changes (Max and up) On the Max plan and up, SEO Turbo also re-scores a product or collection as soon as you edit it in Shopify, so scores stay current between audits. This happens automatically; there's nothing to switch on. ## Brand voice for AI rewrites A few words on how your store sounds, for example "Warm, playful, no jargon". The AI uses this tone when it writes titles and descriptions. ## Keywords to rank for A comma-separated list of search terms, for example "organic cotton, baby clothes". The AI uses them only where they fit the page, so you won't get keyword-stuffed titles. Click **Save** when you're done. Your current plan is shown at the bottom of the section. --- # Structured Data Output > Exactly which JSON-LD the SEO Turbo app embed prints on each template Source: https://help.pasilobus.com/turbo/structured-data-output App: SEO Turbo Shopify App Store: https://apps.shopify.com/pasilobus-turbo App help: https://help.pasilobus.com/turbo Section: For Developers Support: email support@pasilobus.com or send a request from https://cloud.pasilobus.com/support (no chat) This article lists exactly which JSON-LD the **SEO Turbo** app embed prints, so you can check it against your theme's own markup or link your own markup to it. ## Where it prints The app embed prints into the page `` of your published theme, as one `