Last updated

How best-price evaluation works

The fundamental rule in Norce pricing is simple: regardless of how a price list is connected to a customer or request, the best (lowest) price is always returned. This page explains how Norce determines which price lists are eligible, how they compete, and what mechanisms can change that behavior.

Which price lists are eligible?

For any given API request, Norce collects all price lists that are allowed to participate in the evaluation:

  • Public price lists — included automatically for all requests to the application.
  • Customer price lists — price lists connected directly to the logged-in customer.
  • Company price lists — price lists connected to the company the customer belongs to.
  • PriceListSeed — a list of specific price list IDs passed in the API call to explicitly include additional price lists, or to control exactly which ones should participate.

All of these are evaluated together. The lowest valid price across all eligible price lists is the one returned. Assortment is the union: a product is available if it appears in any of the eligible price lists.

Price list sourceHow it enters the evaluation
PublicAutomatically included for the application
CustomerLinked to the customer in Norce
CompanyLinked to the company in Norce
PriceListSeedPassed explicitly in the API call

How the competition works

All eligible price lists produce a price for each product, and Norce selects the lowest. This happens per product, not per price list — a customer can get the price from their agreement list for one product and the campaign price for another.

Type priority

If price list types with different priorities are configured, Norce evaluates the highest-priority group first. Only if that group produces no price does it fall through to the next group. Within a group, the lowest price still wins.

The PriceListSeed

Passing price list IDs via PriceListSeed in an API call adds those price lists to the evaluation alongside public and customer/company lists. This is commonly used when additional context to the price evaluation is required, like showing outlet products, that can have special prices, or when a specific requirement is met for the customer that allows access to a specific price list.

See Using PriceListSeed for practical setup guidance.

Disregard public price lists

The When PriceListSeed is used in Norce API, disregard public price lists client setting (shortened in this document) changes behavior when price list IDs are passed via PriceListSeed. When enabled:

  1. Public price lists are ignored (when seed is provided instead) — only the seeded price lists compete.
  2. Products not on any of the seeded price lists are excluded from results.

This effectively turns PriceListSeed into a controlled context instead of an additive one.

When this setting is ignored

If a customer or company has an exclusive price list, the Disregard public price lists setting has no effect — the exclusive price list always takes precedence. See below.

Exclusive price lists

A price list connected to a customer or company can be marked as exclusive. An exclusive price list overrides the normal best-price evaluation for both price and assortment.

The rules are:

  • If a customer or company has at least one exclusive price list, only those exclusive lists are used — all other eligible price lists (public, PriceListSeed, non-exclusive customer/company lists) are ignored.
  • Among multiple exclusive price lists belonging to the same customer or company, normal best-price logic applies.
  • If both the customer and the company have exclusive price lists, the company's exclusive price lists win — the customer's are ignored.
  • An exclusive price list always overrides Disregard public price lists as well.

Use exclusive price lists when a specific agreement must always apply, with no possibility of a campaign or public list undercutting or adding assortment outside the agreement.

API methods and how they differ

Two commonly used API methods behave differently from the standard best-price evaluation:

ListProductsByCustomer

Returns products connected to the logged-in customer's or company's price lists. The price returned is still the best price across all eligible lists, but the assortment is limited to only those products that appear on a customer- or company-connected price list.

If a customer price list contains one product from a category of ten, ListProductsByCustomer returns only that one product — but at the same best price that ListProducts would return.

This changes assortment, not the pricing logic.

ListProductsByPriceList

Returns products that exist on a specific price list (passed via PriceListSeed), and returns that price list's price — not the overall best price. This is the one method where the best-price rule does not apply.

If a price list has a price of 120 SEK but the best price across all lists is 100 SEK, ListProductsByPriceList returns 120 SEK.

This changes both assortment and price.

Summary

MechanismEffect on priceEffect on assortment
Multiple public + customer/company listsBest (lowest) price winsUnion of all assortments
PriceListSeed addedSeeded lists join the competitionSeeded assortment added
Disregard public (+ PriceListSeed active)Only seeded lists competeOnly seeded assortment
Exclusive customer price listExclusive lists onlyExclusive assortment only
Exclusive company price listCompany exclusive wins over customerCompany exclusive assortment
Type priority configuredHighest-priority group evaluated firstNo change
ListProductsByCustomerNormal best-priceCustomer/company lists only
ListProductsByPriceListSpecific price list's priceSpecific price list's assortment