B2B platform for digital goods

How to Sync Digital Goods Prices Automatically

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.

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):

  1. Poll price endpoint daily at minimum β€” FX-linked prices can change significantly in 24 hours
  2. Store the FX-implicit price separately β€” track wholesale cost in both TRY and USD
  3. Set a wider FX buffer β€” 6–10% for TRY, 2–4% for BRL
  4. 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

Frequently asked questions

How often should I sync prices from the supplier?
Daily for stable USD products. Twice daily or more for FX-volatile products. At minimum, query price at the time of order creation as a safety check.
What if my retail price becomes lower than the new wholesale price?
Your store should catch this before accepting an order. Implement a check: if wholesale_price > (retail_price Γ— (1 βˆ’ minimum_margin)), block the product from sale and alert ops.
Should I pass wholesale price changes directly to customers?
Not necessarily. If the change is small (<1%), absorb it. For larger changes, update retail prices. Customers expect some price stability; constant price changes reduce trust.
How do I handle a price change that happens mid-order?
Use the wholesale price at the time of order creation. If the price changed between the customer adding to cart and paying, use whichever price your system queried at payment time β€” and ensure you have a recent price query, not a day-old cache.
Get FoxReload API access

Related articles