Skip to content

Pricing & Multi-Currency

Vectis uses an eight-level pricing hierarchy that resolves the best price for every buyer automatically. Combined with multi-currency support, this covers wholesale tiered pricing, account-negotiated rates, and international storefronts.

Price Resolution Hierarchy

When a product price is requested, the system checks these levels top to bottom with strict priority, falling through to the next level whenever a level has no matching entry:

Priority Level Description
1 (highest) Managed cart prices Admin override for a specific line — useful for clearance or one-off deals
2 Location-owned price list The location's own price list for site-specific agreements (supersedes the old per-row location prices)
3 Customer-owned price list The account/customer's own price list holding all per-variant overrides (supersedes the old per-row account prices)
4 Customer category overrides Category-scoped price-list overrides for a specific customer
5 Assigned price list A shared price list assigned to the account/customer
6 Group category overrides Category-scoped price-list overrides for a customer group
7 Group pricing Price list + volume tiers assigned to a customer group (e.g., "Gold Tier Distributors")
8 (lowest) Default variant price The base price for the variant

Subject specificity outranks product-scope specificity: any customer-level source beats any group-level source, and within one subject scope, per-variant beats per-category beats whole-catalog.

Tip

You only need to set prices at the levels you use. Most products only have a default price. Override at higher levels only when needed.

Price Lists

Price lists are the foundation of default pricing. Each list has:

  • Currency — the currency for all entries in the list.
  • Scheduling — optional valid_from and valid_to dates for seasonal or promotional pricing.
  • Priority — when multiple lists match, the highest-priority list wins.

A single variant can appear in multiple price lists (e.g., one in USD, one in MXN, one for a holiday sale).

Volume Pricing

Volume tiers let you offer lower per-unit prices at higher quantities:

Minimum Quantity Price
1 $10.00
10 $9.00
50 $7.50
100 $6.00

Volume tiers are defined per price list entry. The system automatically selects the best tier based on the line item quantity.

Multi-Currency

Channel Configuration

Each channel defines:

  • Base currency — the canonical currency for accounting and reporting.
  • Supported currencies — the set of currencies buyers can transact in.

Exchange Rates

Exchange rates are admin-managed in the Settings → Currencies section. Each rate pair maps a source currency to a target currency with a conversion factor.

Warning

Vectis does not fetch live exchange rates automatically. An admin must update rates manually or via API integration. Stale rates can cause pricing discrepancies.

Price Resolution with Currency

When a buyer requests a price in a target currency:

  1. Direct match — if a price list entry exists in the target currency, use it.
  2. Fallback + conversion — if no direct entry exists, use the base-currency price and convert using the stored exchange rate.

Direct entries always take priority, giving you full control over international pricing.

Price List Conversion Wizard

The admin panel provides a bulk conversion wizard to generate target-currency price list entries from your base-currency list. This creates real entries (not dynamic conversions), so you can review and adjust individual prices after generation.

To use it: Pricing → Price Lists → select a list → Convert to Currency.

Account & Customer Currencies

  • B2B accounts can have a preferred currency set at the account or location level.
  • B2C customers have a preferred_currency field on their profile.

When a buyer with a preferred currency logs in, the storefront defaults to showing prices in that currency.

Note

The preferred currency must be in the channel's supported_currencies list. If it is not, the storefront falls back to the channel's base currency.

Admin Panel

From Pricing in the admin you can:

  • Create and manage price lists with scheduling and currency.
  • Set volume tiers on individual price list entries.
  • Manage per-customer pricing levels — owned price lists, category overrides, and assigned lists — plus a per-product price matrix view.
  • Import/export price list entries via CSV, and import/export pricing config bundles.
  • Manage exchange rates between currency pairs.
  • Run the conversion wizard to bulk-generate multi-currency entries.
  • Review and restore invalidated overrides from the stale-overrides view.

Automated Override Invalidation

Account / location / managed-price overrides used to drift silently when the base catalog changed (SKU rename, variant deletion, currency drop). Override entries now invalidate automatically:

  • Variant deleted or hidden — overrides on that variant are flagged stale=true and excluded from price resolution. The admin pricing page shows them in a "Stale overrides" view with a one-click cleanup.
  • Currency removed from channel — overrides in the removed currency are flagged and hidden.
  • Base price list scheduling change — overrides past their referenced valid_to are flagged.

Invalidation runs synchronously on the triggering admin action and emits vectis.audit.override_invalidated.v1 so analytics can attribute drift to the right operator. The override is never deleted automatically — staff must approve the cleanup.

Money Precision

The channel setting money.decimal_places (default 2) is validated at save-time and busts the pricing cache on change. Changing it from 2 to 4 is non-destructive — existing money values are preserved, but display formatting and rounding rules adopt the new precision immediately. Use the higher precision sparingly; reporting downstream may expect the lower precision.