Skip to content

Volume discounts

The volume-discount widget never shows anything, on any product

Section titled “The volume-discount widget never shows anything, on any product”

Same shape as the bundle widget - it hides itself ([ss-empty]) in every “nothing to show” case:

  1. No namespace configured. Like the bundle widget, <storesynk-volume-discount> needs the app’s concrete metafield namespace (app--<numeric-app-id>) - set app-namespace="app--…" on <storesynk-store> or namespace on the widget. Neither warns SSK-211 and the widget stays ss-empty with no network request at all (that absence is the diagnostic).
  2. Not inside the page’s <storesynk-product>. It consumes productContext for the product id (SSK-102); outside a product it renders nothing, silently.
  3. No template / no tier list. The widget’s first element child must contain a <volume-tier-list> (SSK-107), and that list’s first child must be (or contain) a <volume-tier> row (SSK-107) - the row it clones per tier.
  4. No live discount - by design. Only an active discount inside its date window qualifies, and the first in list order wins; if the app says one exists but the widget is empty, check its status and date window.

The tier rows show but the tier title / price / label cells are blank

Section titled “The tier rows show but the tier title / price / label cells are blank”

show-tier-title / show-tier-label / show-tier-badge / show-tier-price / show-tier-original-price / show-tier-each-price consume the per-row tier context that <volume-tier-list> attaches to each cloned <volume-tier> - outside the tier row (i.e. not inside <volume-tier-list>) they’re blank (SSK-105). show-volume-discount-title and <add-volume-to-cart> likewise need a <storesynk-volume-discount> ancestor (SSK-105). A <volume-tier> placed outside a <volume-tier-list> is never cloned or driven (SSK-106). Note that show-tier-label / show-tier-badge set [ss-empty] when the tier has no label/badge, and show-tier-original-price hides on rows with no savings - that’s by design, not a bug.

The tier prices look wrong / don’t match checkout

Section titled “The tier prices look wrong / don’t match checkout”

The row prices are advisory - computed client-side from the current selected variant’s price (they re-price on every sf:variant-change, so changing a <change-option> updates them). The real percentage is applied by the app’s Discount Function at checkout, so a small display-vs-checkout difference is expected, not a bug.

The volume add button is greyed out / clicks do nothing

Section titled “The volume add button is greyed out / clicks do nothing”

<add-volume-to-cart> is a VariantButton like <add-to-cart>: [ss-unavailable] / [ss-out-of-stock] (styled on the wrapper, aria-disabled on the button) track the page’s selected variant. If it does nothing with neither state set, the standard actions aren’t installed - the page is missing its <storesynk-store> boot (SSK-101/206) or the elements script (SSK-401). An “N+” tier deliberately adds exactly N (the shopper edits the quantity in the cart).


Imported from the Storesynk skill v0.1.0 (references/known-issues.md). To change this page, change it there.