Last updated

Virtual Price Lists

Virtual price lists are a flexible tool for creating dynamic price lists that are calculated in real time with each API request. Unlike regular price lists, no product data is stored directly in the price list; all pricing is based on rules and information from a parent price list.

How do virtual price lists work?

A virtual price list is always linked to a parent price list and inherits its assortment and currency. All settings and price rules are defined at the price list level, and there is no product-level information until a price needs to be calculated. When an API request is made, prices are calculated instantly based on the current rules and the data from the parent price list.

Virtual price lists are not shown in the product catalog or admin interface and cannot be exported as a feed. They are only available via API.

Advantages

  • Real-time calculation: Prices are calculated instantly upon request, with no need to wait for batch jobs or queues.
  • No storage: Takes up no space in the system since no product data is stored.
  • Immediate updates: Changes to rules or the parent price list are reflected immediately with the next API request.

Limitations

LimitationDetail
CurrencyMust match the parent price list — no currency conversion
AssortmentAlways identical to the parent — cannot be limited or extended
Parent requiredA virtual price list must always have a parent price list
Price rulesMust be based on information from the parent (no fixed prices)
Product flagsPrice rules based on product flags are not supported
RoundingNo rounding rules are applied — prices are calculated exactly

When to use virtual price lists

Virtual price lists are a good fit when:

  • You need real-time, per-request pricing without managing batch calculations or feed updates.
  • You want a contract or agreement price that is always a simple rule-based derivation from the standard price — for example, a fixed percentage discount for a specific company.
  • The customer-specific price list should cover the full standard assortment (no assortment filtering needed).

They are a poor fit when you need to limit assortment to a subset of products, use product flag-based rules, or apply rounding. In those cases, a regular (stored) price list is the right choice.

Virtual vs. stored price list

FeatureVirtualStored
Calculation timePer API requestBatch / on change
StorageNoneProduct-level records
Currency conversionNot supportedSupported
Assortment controlNot supportedSupported via population rules
Rounding rulesNot currently supportedSupported
Product flag rulesNot currently supportedSupported
Feed exportNot currently supportedSupported
Full visibility in adminNoYes

Note: Improvements to the virtual price list functionality are currently being planned.

Setting up a virtual price list

Create a virtual price list the same way as a regular price list, but check the Virtual option when creating it.

  • Set a parent price list — required.
  • Set the same currency as the parent.
  • Set a price rule — for example, Use standard price (pct discount) with a 5% discount.
  • Mark as non-public and pass the price list ID via PriceListSeed in API calls to use it for a specific customer context, or mark as public if it should always apply.