Skip to main content

Keeping your bundle's prices current

Which bundle types hold a price snapshot, what triggers a rebuild, the remedy when a price goes stale, and how to tell that apart from a Widget-only bundle where staleness isn't the problem.

Written by Andrey Gadashevich

Price freshness by bundle type

Physical bundles and native Shopify bundles both write prices into a real Shopify product, so both hold a price snapshot taken when the bundle was last built. Widget-only bundles hold no snapshot at all — the discount is computed against the live cart price at checkout, so a component price change takes effect immediately, with nothing to rebuild.

What the shopper sees: on a Physical or Shopify bundle, the widget can show fresh component prices while the bundle's own product still charges the total from the last build. On a Widget-only bundle, the two always agree.

What rebuilds a Physical or Shopify bundle

Only the Shopify type self-heals from a product change. When a component product changes, a webhook recomputes a bundle's combinations and pushes new prices — but that only applies to Shopify-type bundles.

A Physical bundle is only rebuilt from a product change when that product's variant list changes length — adding, removing or renaming a variant does it, while editing a price to a same-length value (for example, changing $19.99 to $24.99) does not. That's the whole reason Physical bundle prices go stale.

Saving the bundle in the app rebuilds either type. A rebuild is deferred while another process holds the lock on the same product.

What the shopper sees: a Physical bundle charging the price it was built with, however many times you edit the component product's price in Shopify.

The remedy, for one stale bundle

Open the bundle in the app and save it again. Saving re-reads the current component prices and republishes the product. There's nothing else you can do yourself that rebuilds a Physical bundle after a price edit.

When several bundles on your shop are affected

There's no button in the app for a bulk resync — contact support and ask for a shop-wide resync of your Physical bundles, rather than opening and saving each one individually. That resync re-fetches every component product from Shopify and rebuilds the Shopify product (prices, compare-at prices, variants, status, publication) of every published Physical bundle on the shop in one pass; it doesn't touch widget-only or Shopify-type bundles.

When the price looks wrong on a Widget-only bundle

A Widget-only bundle holds no price snapshot, so the staleness explanation above does not apply to it — the widget price and the charged price are computed from the same current data and always agree. If you're on a Widget-only bundle and the charged price differs from what you expected, the cause is a setting, not staleness.

Check, in this order:

  1. Whether the discount is Sale price applied to the bundle subtotal rather than per item — a Sale price is a floor for the whole bundle, not a per-product price.

  2. Whether the figure you're comparing against is the per-item price rather than the bundle total.

  3. Whether Display discount to customers from Compare-at price is on — that changes the crossed-out figure, not the charged one.

  4. Whether the shopper picked a different variant from the one you priced against.

Don't re-save a Widget-only bundle expecting it to change the price — re-saving is the Physical/Shopify remedy, and it won't change anything here.

What the shopper sees: the same number in the widget and at checkout.

Sync collections

Found at the bottom of Settings → Sync collections → "Sync now", always available — it shows a loading state while running.

Use this to re-import your Shopify collections and their membership into the app. The timestamp beside the button shows the last successful import.

Did this answer your question?