{"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 - Setting up ERP-controlled price lists","description":"How to set up a price list where an external system (ERP or PIM) controls the prices.","keywords":"Pricing, ERP, fixed price, integration, price list, inheritance, assortment"},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"setting-up-erp-controlled-price-lists"},"children":["Setting up ERP-controlled price lists"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["In many setups, prices are maintained in an external system — an ERP, PIM, or pricing tool — and pushed into Norce via integration. This article covers the common setup where a ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["child price list"]}," with Fixed price receives prices from the ERP and inherits everything else from a standard parent. The step-by-step section focuses on this scenario."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"common-erp-pricing-scenarios"},"children":["Common ERP pricing scenarios"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["There are two equally common approaches, and which one you use depends on what the ERP controls."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"scenario-a-erp-controls-everything--standalone-price-list"},"children":["Scenario A: ERP controls everything — standalone price list"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The ERP is the single source of truth for all pricing data. The integration pushes recommended price, sale price, cost, and everything else directly into Norce. There is no parent price list — the price list stands alone."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This is typical when the ERP acts as a full pricing engine and Norce just needs to reflect its output faithfully. No inheritance or calculation is needed in Norce; the ERP handles it all."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"scenario-b-erp-controls-sale-prices--child-inherits-the-rest"},"children":["Scenario B: ERP controls sale prices — child inherits the rest"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A child price list with Fixed price inherits its assortment, recommended price, catalog price, and cost data from a standard parent. The ERP integration only pushes the sale price per product. Everything else comes automatically from the parent."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This is the most common setup for ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["standard ERP-integrated price lists"]},", and is what the step-by-step below covers."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A common variant of this scenario is ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["customer agreement pricing"]},": the ERP holds pre-negotiated prices for a specific customer covering a subset of their full assortment. In this case, a small child price list is created for the customer — it inherits the full standard assortment from the parent but only has fixed prices for the products where the agreement differs. For all other products, the parent price applies via best-price evaluation."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"step-by-step-setup-scenario-b"},"children":["Step-by-step setup (Scenario B)"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"1.-create-the-price-list"},"children":["1. Create the price list"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Go to ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Pricing > Tools > New"]},"."]},{"$$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":"Field"},"children":["Field"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Value"},"children":["Value"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"em","attributes":{},"children":["Name"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["e.g. ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ERP Prices — SE"]}," or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Agreement — Customer X"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"em","attributes":{},"children":["Parent Price List"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Your standard base price list"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"em","attributes":{},"children":["Currency"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Same as the parent (or the market currency if this is market-specific)"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"em","attributes":{},"children":["Price Rule"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Fixed price"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"em","attributes":{},"children":["Public"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Depends on your setup — see below"]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["With ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Fixed price"]}," selected, no automatic price calculation is done. Each product's sale price must be explicitly set by the integration."]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"warning","name":"Fixed price requires explicit prices"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Products on a Fixed price list without an explicitly set price will have no price and will not appear in price calculations for that list. For customer agreement lists that only cover part of the assortment, this is expected — those products fall back to the parent's best price."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"2.-decide-on-public-vs-non-public"},"children":["2. Decide on Public vs non-public"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Public"]}," — the price list automatically participates in best-price evaluation for all requests. Suitable for a general ERP-controlled standard price list."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Non-public"]}," — the price list only participates when explicitly passed via ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PriceListSeed"]}," in the API call. Suitable for customer-specific agreement lists that should only apply in the right customer context."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"3.-connect-the-erp-integration"},"children":["3. Connect the ERP integration"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The ERP integration pushes prices to Norce via the price API. The minimum required fields for a Fixed price list are:"]},{"$$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":"Field"},"children":["Field"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PartNo"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The product's part number"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PriceListCode"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The code of the target price list"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PriceSale"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The sale price (VAT exclusive)"]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The integration typically runs on a schedule or is triggered by price changes in the ERP. Norce processes and applies price updates immediately when received."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"4.-what-is-inherited-from-the-parent"},"children":["4. What is inherited from the parent"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Even though the sale price is controlled by the ERP, the child price list inherits the following from the parent:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Standard price"]}," — automatically inherits the sale price from the parent price list."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Recommended price"]}," — inherited from the parent's recommended price."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Catalog price"]}," — inherited from the parent."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Cost (purchase/unit)"]}," — inherited via the parent's connected supplier price lists."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This means the integration only needs to manage the sale price. All other pricing metadata is kept up to date automatically via the parent."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"assortment-and-population-rules"},"children":["Assortment and population rules"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Population rules on the child price list determine which products from the parent are active on the child. This interacts with the ERP integration in an important way that can cause confusion."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["By default, population rules are set to ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["exclude all"]}," products from the parent — products must be explicitly opted in by category, manufacturer, or flag. If a product's category or flag no longer matches the population rules, it will be deactivated on the child price list even if the ERP integration has a price for it."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A common issue is: the ERP sends in a price for a product, but the product gets deactivated on the child price list anyway because the population rules do not include it. In this case, the product's category or flag must be updated to satisfy the population rules — or the population rules must be adjusted to include it."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"integration-controlled-assortment"},"children":["Integration-controlled assortment"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["There is a specific setup for integrations that need to control the active assortment directly:"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If the child price list has its population mode set to ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["exclude all"]}," (the default) and has ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["no population rules defined at all"]},", Norce will not automatically deactivate products based on the parent's assortment. Instead, a product's active status on the child price list is determined solely by whether the integration has set a price record for it."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This means:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Sending a price for a product activates it on the child price list."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Removing the price (or setting it to inactive) deactivates it."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["No population rules intervene."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This is useful when the ERP owns the assortment for a customer agreement and Norce should not apply any additional filtering on top."]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info","name":"Combination with population rules"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["As soon as any population rule is added — even one — Norce resumes managing assortment based on those rules. Only a completely rule-free setup gives full integration control over the assortment."]}]},{"$$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/price-list-inheritance"},"children":["Price list inheritance and population"]}]},{"$$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/best-price-evaluation"},"children":["How best-price evaluation works"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/user-portal/pricing/use-case-pricelistseed"},"children":["Using PriceListSeed"]}]}]}]},"headings":[{"value":"Setting up ERP-controlled price lists","id":"setting-up-erp-controlled-price-lists","depth":1},{"value":"Common ERP pricing scenarios","id":"common-erp-pricing-scenarios","depth":2},{"value":"Scenario A: ERP controls everything — standalone price list","id":"scenario-a-erp-controls-everything--standalone-price-list","depth":3},{"value":"Scenario B: ERP controls sale prices — child inherits the rest","id":"scenario-b-erp-controls-sale-prices--child-inherits-the-rest","depth":3},{"value":"Step-by-step setup (Scenario B)","id":"step-by-step-setup-scenario-b","depth":2},{"value":"1. Create the price list","id":"1.-create-the-price-list","depth":3},{"value":"2. Decide on Public vs non-public","id":"2.-decide-on-public-vs-non-public","depth":3},{"value":"3. Connect the ERP integration","id":"3.-connect-the-erp-integration","depth":3},{"value":"4. What is inherited from the parent","id":"4.-what-is-inherited-from-the-parent","depth":3},{"value":"Assortment and population rules","id":"assortment-and-population-rules","depth":2},{"value":"Integration-controlled assortment","id":"integration-controlled-assortment","depth":3},{"value":"Related topics","id":"related-topics","depth":2}],"frontmatter":{"seo":{"title":"Norce User Documentation - Setting up ERP-controlled price lists","description":"How to set up a price list where an external system (ERP or PIM) controls the prices.","keywords":"Pricing, ERP, fixed price, integration, price list, inheritance, assortment"},"metadata":{"redocly_category":"User docs","owner":"MB"}},"lastModified":"2026-07-03T11:57:13.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/user-portal/pricing/use-case-erp-pricing","userData":{"isAuthenticated":false,"teams":["anonymous"]}}