How to Sync Digital Goods Prices Automatically
Short Answer
Digital goods wholesale prices change β especially for region-specific products with FX exposure. Automatic price sync means querying the supplier's price endpoint on a schedule, comparing to your current retail prices, and adjusting retail prices to maintain your target margin. Without sync, a wholesale price increase erodes your margin silently; a wholesale price decrease means you leave margin on the table unnecessarily.
Definition: Automatic price sync for digital goods is a scheduled process that queries the supplier API for current wholesale prices and updates retail prices in your store to maintain a defined margin band β without manual intervention.
Key takeaway: Manual price management works for 10 SKUs. It fails for 100+, and it fails completely for products with FX-linked pricing (Steam Turkey, regional cards). Automate price sync early.
Who This Guide Is For
- Developers building a digital goods store who need to implement price management
- Store operators managing large catalogs who currently update prices manually
- Marketplace operators adding digital goods to their platform
Why Prices Change
| Cause | Frequency | Products Affected |
|---|---|---|
| Supplier adjusts wholesale rates | Occasional (monthly or less) | All products |
| FX rate changes | Daily (for volatile pairs) | TRY, BRL, regional cards |
| Platform policy changes game pricing | Rare | Game-specific SKUs |
| Promotional pricing from supplier | Occasional | Varies |
| New product additions | Ongoing | New SKUs |
For USD-denominated products (US Steam, US PSN), price changes are infrequent. For TRY-denominated products (Turkey Steam), prices can shift significantly week to week.
Price Sync Architecture
Option A: Full Price Pull (Simple)
Scheduled job (daily or twice daily):
1. GET /prices β fetch all current wholesale prices
2. For each SKU in your catalog:
a. Compare current wholesale price to stored price
b. If changed: recalculate retail price at target margin
c. Update retail price in your store
3. Log all price changes for audit
Option B: Per-Order Price Query (Accurate but Expensive)
At order creation time:
1. GET /prices/:sku β fetch current wholesale price for this SKU
2. Verify retail price charged to customer covers wholesale + margin
3. If wholesale price has risen above retail β margin: flag for review
This is the most accurate but creates API load on every order. Use it as a safety check alongside Option A, not as your primary sync mechanism.
Option C: Webhook-Triggered Sync (Ideal)
If your supplier offers price change webhooks:
Webhook: price.changed
β Update affected SKU retail prices immediately
Not all suppliers offer price webhooks. Check before designing around this.
Retail Price Recalculation Formula
When wholesale price changes, recalculate retail using your target margin formula:
New retail price = New wholesale cost Γ· (1 β Payment fee% β FX buffer% β Target margin%)
Then apply business rules:
- Round up to a market-friendly price point (e.g., $9.99 not $9.87)
- Do not lower retail below a floor price (competitive minimum)
- Alert if new retail would need to be higher than competitors by more than X%
Price Change Alert Thresholds
Set alerts when wholesale price changes exceed defined thresholds:
| Change | Alert Level |
|---|---|
| Wholesale up β€1% | Log only |
| Wholesale up 1β3% | Update retail silently; log |
| Wholesale up >3% | Update retail; send ops alert |
| Wholesale down >3% | Update retail; review competitive position |
| Wholesale down >10% | Alert β possible catalog error or supplier change |
FX-Linked Products: Special Handling
For products priced in volatile currencies (TRY, BRL):
- Poll price endpoint daily at minimum β FX-linked prices can change significantly in 24 hours
- Store the FX-implicit price separately β track wholesale cost in both TRY and USD
- Set a wider FX buffer β 6β10% for TRY, 2β4% for BRL
- Alert on large moves β if TRY/USD moves >5% in a week, audit all TRY-linked prices
Implementation Checklist
- Identify your supplier's price endpoint (GET /prices or per-SKU)
- Set up scheduled price pull job (daily minimum; twice daily for FX-volatile products)
- Store wholesale price per SKU with timestamp in your database
- Implement retail price recalculation using your margin formula
- Apply rounding rules (market-friendly price points)
- Set minimum floor prices (do not go below competitive minimum)
- Log all price changes with timestamp and before/after values
- Alert on large wholesale price changes (>3%)
- For FX-linked products: poll daily and set larger FX buffer
- Test price update flow in staging before production
