Frequently Asked Questions
Answers to common questions and solutions for issues you might encounter with PriceGuard.
Sync Issues
My sync failed. What happened?
Check the sync status on the Dashboard for the error message. Common causes:
- API rate limiting (too many variants)
- Network timeout
- Shopify API downtime
Wait a few minutes and try again via "Sync Now" or wait for the next scheduled sync.
Why is my sync taking so long?
Large stores (10,000+ variants) can take several minutes. Check the progress indicator on the Dashboard. If stuck for more than 10 minutes, the sync may have timed out. Try again.
Why does the sync show 0 products updated when I changed prices?
PriceGuard only records changes when prices differ from the last recorded entry. If you changed a price and changed it back before the sync ran, no change is detected. Price changes made after the sync started are captured on the next sync.
How often should I run syncs?
Daily is recommended for most stores. Set up a Shopify Flow automation for automatic daily syncs. Manual syncs are useful after bulk price changes.
Can I sync only specific products?
No. Each sync covers all active product variants in your store. Even if a variant's price has not changed, the promotions assigned to its product may have, which affects the lowest price calculation. A full sync ensures all compliance data stays up to date.
Why was my Flow sync skipped?
Flow-triggered syncs are limited to 4 per day to prevent excessive API usage. If the limit has been reached, the sync is skipped and recorded in Sync History with a "Skipped" status. Manual syncs from the Dashboard are not affected by this limit.
I added new products. Do I need to sync?
Yes. New products are picked up on the next sync. If you need tracking data immediately, run a manual sync from the Dashboard. Otherwise, the next scheduled sync will include them automatically.
Widget Issues
Why is the widget not showing on my storefront?
Check the following:
- Widget enabled in Theme Editor (App Embeds / App Blocks)
- Product has a compare-at price set and greater than the price
- At least one sync has run successfully
- The variant has tracking data (check the Products page in the app)
- If your Shopify Markets configuration hides the compare-at price: widget visibility mode is set to "Always show with PriceGuard data" in Settings
Why does the widget show wrong prices?
Run a manual sync to refresh data. Check the variant's price history in the Products page. Verify that prices in Shopify are correct. If promotions are involved, check the Promotions inclusion list.
Why does the widget look broken or have styling issues?
Check for CSS conflicts with your theme. PriceGuard uses CSS custom properties for styling. Adjust in Theme Editor settings or via CSS overrides. Try disabling other price-related apps temporarily to isolate the issue.
Why is the widget not updating when I change variants?
PriceGuard listens for standard Shopify variant change events. Some custom themes may use non-standard variant selectors. Check the browser console for JavaScript errors.
Why won't the info overlay open?
Check the overlay_trigger setting in Theme Editor (click vs. hover). Ensure JavaScript is not blocked by a script blocker. Try toggling the "Show info overlay" setting.
Why does the widget show on products that are not on sale?
This can happen if the widget visibility mode is set to "Always show with PriceGuard data" in Settings. In this mode, the widget appears whenever PriceGuard has tracking data, regardless of whether a compare-at price is set. Switch to "Show with compare-at price" if you only want the widget on products with active strikethrough pricing.
Compliance Questions
Who is responsible for pricing compliance?
You and your company. PriceGuard is a tool that helps you track prices and display the required information, but it does not replace your obligation to ensure compliance and accuracy. PriceGuard depends on correct pricing data in Shopify and proper configuration of settings and promotions. Review the output regularly, verify it matches your expectations, and consult with legal counsel for your specific obligations.
What does "Exceeds lowest" mean?
The strikethrough price is not compliant based on the price history. The compare-at price exceeds the calculated lowest price in the lookback window and needs immediate attention. Review the variant's price history and adjust the compare-at price.
What does "Rolling window" mean?
Your sale campaign has exceeded the max campaign days (default 60). PriceGuard automatically switched from a fixed lookback window to a rolling window that recalculates the lowest price with each sync. Review whether the extended sale is intentional.
Do I need PriceGuard for markets outside the EU/UK?
The EU Omnibus Directive applies to all EU/EEA member states. In the UK, the DMCCA and CTSI Pricing Practices Guide require genuine reference prices, and PriceGuard's price history tracking supports that. Other jurisdictions may have similar regulations; consult local legal counsel.
Is the "lowest price" before or after VAT?
PriceGuard uses prices exactly as stored in Shopify. If your shop is set up with VAT-inclusive pricing, the widget shows VAT-inclusive prices and displays a "VAT included" label in the overlay. If your shop uses VAT-exclusive pricing, the widget shows prices without VAT.
What happens to my data if I uninstall PriceGuard?
App database data (settings, sync logs, promotions) is automatically deleted on uninstall. However, metafield data on product variants remains in Shopify. Some internal metafields use an app-reserved namespace that becomes inaccessible after uninstall, so you will still be able to see them but not delete them.
Recommended: Before uninstalling, go to Settings and use the Delete all PriceGuard metafields button to remove all metafield definitions and values. This ensures a clean removal with no orphaned data.
If you reinstall PriceGuard without deleting metafields first, the app will recreate its definitions and the existing merchant-accessible metafield values will be preserved. App-reserved metafields from the previous installation may remain but will not interfere with the new installation.
What does "Below lowest" mean?
The compare-at price is lower than the calculated lowest price in the lookback window. While legally compliant, this is most likely unintended as it reduces the perceived discount for customers. Consider increasing the compare-at price to the calculated lowest price.
How long until I have full compliance data?
PriceGuard needs one full lookback window of tracking data (default 30 days) for complete compliance coverage. Until then, the widget displays the actual number of tracked days (e.g., "Lowest price in last 12 days"). Run daily syncs to build up history as quickly as possible.
Why does the widget still show after I ended a sale?
In the default visibility mode, the widget disappears as soon as the compare-at price is cleared. Server-side or client-side caching may delay this briefly. If using "Always show with PriceGuard data" mode, the widget continues to show as long as tracking data exists.
Promotions
Which discounts should I add to the inclusion list?
Only public, non-personalized promotions that are available to a large portion of customers. Personalized discounts (birthday codes, loyalty rewards, employee discounts) should not be included.
I forgot to add a promotion. Can I add it retroactively?
Adding a promotion does not retroactively recalculate past history entries. It takes effect from the next sync onward. Future calculations will include the promotion.
A promotion expired. Does it still affect calculations?
Yes, if the promotion was active during the lookback window. PriceGuard considers the effective prices customers paid during any included promotion that overlaps with the lookback period. Once the promotion falls outside the lookback window entirely, it no longer affects the calculation.
Metafields
Note: Editing metafields directly can break compliance calculations. Only modify metafields if you fully understand the data structure and the impact on PriceGuard's engine.
Where does PriceGuard store its data?
PriceGuard stores pricing data directly on each product variant as Shopify metafields:
| Metafield | Type | Description |
|---|---|---|
$app:priceguard.price_history |
JSON | Full price history with pre-calculated compliance values (app-owned, read-only in Shopify admin) |
$app:priceguard.reset_history |
Boolean | Set to true to reset a variant's history on the next sync (app-owned, merchant-writable) |
priceguard.original_price |
Integer | First recorded price (in cents) |
priceguard.lowest_prior_price |
Integer | Current Omnibus-compliant lowest price (in cents) |
priceguard.lowest_prior_date |
Date | When the lowest price occurred |
priceguard.history_days |
Integer | Days of tracking data available |
You can view these in Shopify Admin > Products > [Product] > [Variant] > Metafields.
Can I edit the price history metafield?
No. Price history is managed entirely by PriceGuard and appears as read-only in Shopify admin. You cannot edit it directly.
If you need to start over for a specific variant, you can reset its history. See "Can I reset a variant's price history?" below.
Can I reset a variant's price history?
Yes, but only as a last resort. Resetting erases all compliance tracking data for the variant, breaking the continuous record required by the Omnibus Directive. Do not use this as part of normal operations. Only use it when data is genuinely corrupt or incorrect.
Set the Reset History metafield to true on the variant in Shopify Admin > Products > [Product] > [Variant] > Metafields, then run a sync.
What happens if I clear a variant's metafield values?
Clearing PriceGuard metafield values from a variant removes all pricing compliance data for that variant. The widget will stop showing on the storefront until the next sync recreates the data. The original price will be set to the current price at the time of the next sync.
What happens if I delete the metafield definitions?
PriceGuard automatically recreates missing metafield definitions on every sync (self-healing). However, if you delete definitions with the "delete all values" option in Shopify admin, all existing metafield values on variants are permanently lost. The next sync will rebuild all data from scratch, meaning tracking history restarts from that point.