{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-user-portal/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":["admonition"]},"type":"markdown","redocly_category":"User docs","owner":"MB"},"seo":{"title":"Norce User Documentation - Using PriceListSeed to control price evaluation","description":"How to use PriceListSeed to control which price lists are included in best-price evaluation.","keywords":"Pricing, PriceListSeed, price list, best price, B2B, contract, exclusive"},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"using-pricelistseed-to-control-price-evaluation"},"children":["Using PriceListSeed to control price evaluation"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["By default, Norce evaluates all public price lists plus any price lists connected to the logged-in customer or company. ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["PriceListSeed"]}," lets you override this by explicitly specifying which price lists should be included in the evaluation for a given API call."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This is most commonly used in B2B portals, where a customer may have multiple contract price lists and the application needs to choose the right one for the current context."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"what-pricelistseed-does"},"children":["What PriceListSeed does"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Passing price list IDs in ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PriceListSeed"]}," adds those price lists to the evaluation. By default, this is additive — the seeded lists compete alongside public and customer/company lists."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Disregard public price lists"]}," setting changes this behavior: when enabled, ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["only"]}," the seeded price lists are used. Public and customer/company lists are ignored, and only products on the seeded lists are returned."]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Setup"},"children":["Setup"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Price source"},"children":["Price source"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Assortment source"},"children":["Assortment source"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["No PriceListSeed"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Public + customer/company lists"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Union of all"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["PriceListSeed (default)"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Best price across public + customer/company + seeded lists"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Union of all"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["PriceListSeed + Disregard public"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Best price from seeded lists only"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Seeded lists only"]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"how-to-find-which-price-lists-to-seed"},"children":["How to find which price lists to seed"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Use the Commerce Services API (Product Service) to gather the information your storefront needs:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ListPriceLists"]}]}," — returns all price lists with their names, codes, and IDs. Call this once and cache the result client-side. It gives your application a complete map of all available price lists to work with."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GetCustomer"]}]}," or ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GetCompany"]}]}," — returns the customer or company record, which includes the connected price list IDs as a property (comma-separated list of IDs)."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Together, these two calls give the storefront everything it needs to determine which price lists are available to a given customer or company, and to decide which ones to add to the current context."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"building-context-dependent-pricelistseed-logic"},"children":["Building context-dependent PriceListSeed logic"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The typical B2B pattern is:"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["At login, retrieve the customer's and company's connected price lists."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Determine which price lists are relevant for the current context — for example, the customer may have one contract for a specific project and another for general ordering."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Pass the relevant price list IDs via ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PriceListSeed"]}," in product and price API calls."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This lets a single customer have multiple contract contexts without needing separate logins or applications."]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info","name":"Example"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A customer has two company price lists: one for project ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["P-2025-001"]}," and one for their standard ongoing orders. The portal lets the customer switch context. When the project context is active, only the project price list ID is seeded. When the standard context is active, the standard contract is seeded."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"using-disregard-public-price-lists"},"children":["Using Disregard public price lists"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Enable this setting under ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Pricing > Settings > Client pricing settings"]}," when you want complete control over what the seeded context returns. With this setting active:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Public price lists do not participate in price or assortment — ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["but only when a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PriceListSeed"]}," is provided"]},". Without any price list seed, all public price lists are used normally."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Products not on any seeded price list are not returned."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The customer effectively only sees the assortment and prices in their explicit context."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This is appropriate for closed B2B portals where a customer should only see their contracted assortment."]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"warning","name":"Exclusive price lists override this setting"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If a customer or company has an exclusive price list, the Disregard public price lists setting is ignored — the exclusive list always wins. See ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/user-portal/pricing/best-price-evaluation"},"children":["How best-price evaluation works"]},"."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"pricelistlocked"},"children":["PriceListLocked"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PriceListLocked"]}," is a related mechanism that goes one step further: it locks in a specific price list as the source of truth and prevents the best-price evaluation from switching to a lower price from another list. This is used when a contract price must be honored exactly — even if a public campaign would give the customer a lower price."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["See the design article ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/solution-portal/detailed-design/pricing-price-list-priority"},"children":["Price list priority"]}," for the technical details."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"related-topics"},"children":["Related topics"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/user-portal/pricing/best-price-evaluation"},"children":["How best-price evaluation works"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/user-portal/pricing/introduction-price-lists"},"children":["Introduction to price lists"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/user-portal/pricing/settings/pricesettings"},"children":["Client pricing settings"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/user-portal/pricing/settings/price-list-types"},"children":["Price list types and priority"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Design: ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/solution-portal/detailed-design/pricing-price-list-priority"},"children":["Price list priority"]}]}]}]},"headings":[{"value":"Using PriceListSeed to control price evaluation","id":"using-pricelistseed-to-control-price-evaluation","depth":1},{"value":"What PriceListSeed does","id":"what-pricelistseed-does","depth":2},{"value":"How to find which price lists to seed","id":"how-to-find-which-price-lists-to-seed","depth":2},{"value":"Building context-dependent PriceListSeed logic","id":"building-context-dependent-pricelistseed-logic","depth":2},{"value":"Using Disregard public price lists","id":"using-disregard-public-price-lists","depth":2},{"value":"PriceListLocked","id":"pricelistlocked","depth":2},{"value":"Related topics","id":"related-topics","depth":2}],"frontmatter":{"seo":{"title":"Norce User Documentation - Using PriceListSeed to control price evaluation","description":"How to use PriceListSeed to control which price lists are included in best-price evaluation.","keywords":"Pricing, PriceListSeed, price list, best price, B2B, contract, exclusive"},"metadata":{"redocly_category":"User docs","owner":"MB"}},"lastModified":"2026-07-03T11:57:13.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/user-portal/pricing/use-case-pricelistseed","userData":{"isAuthenticated":false,"teams":["anonymous"]}}