{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-ai/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":[]},"type":"markdown","redocly_category":"Development","owner":"MB"},"seo":{"title":"AI - Norce Pricing MCP Tool Reference","description":"Reference for all tools exposed by the Norce Pricing MCP Server — price lists, pricing rules, rounding, SKU prices, price imports, preview, and Omnibus audit log.","keywords":"MCP, model context protocol, pricing MCP, price lists, pricing rules, SKU prices, omnibus, tool reference"},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"norce-pricing-mcp--tool-reference"},"children":["Norce Pricing MCP — Tool Reference"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This page documents the tools exposed by the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Norce Pricing MCP Server"]},". For setup and connection instructions, see ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/ai/using-the-norce-backend-mcp-servers"},"children":["Using the Norce Backend MCP Servers"]},"."]},{"$$mdtype":"Tag","name":"blockquote","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["response_format"]}," parameter:"]}," Most tools accept a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["response_format"]}," parameter — either ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"markdown\""]}," (default, human-readable) or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"json\""]}," (for programmatic use). This parameter is not listed individually under each tool."]}]},{"$$mdtype":"Tag","name":"blockquote","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["force_confirm"]}," parameter:"]}," Write tools include a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["force_confirm"]}," parameter, backed by a server-side guard that classifies each operation by impact. Lower-impact operations go through, with a warning attached on stage and production. Higher-impact operations are blocked on ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["stage and production"]}," until ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["force_confirm"]}," is set. A few destructive operations are blocked on ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["every environment, including test"]},". Each tool below states which of these applies."]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"two-views-of-price-data"},"children":["Two views of price data"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Like the Inventory MCP, the Pricing MCP exposes price data through two distinct lenses. Choosing the right one matters:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_pricing_get_sku_prices"]}]}," reads directly from the database — no cache, no VAT, no business logic. Use it for diagnostics and to verify that an import landed correctly."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_pricing_preview_prices"]}]}," and ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_pricing_preview_price_detail"]}]}," return prices as the storefront would show them — with business rules, VAT, and caching applied. Use them to answer \"what will the customer see?\""]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The storefront view is ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["application-specific"]}," — the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["applicationId"]}," you pass determines which storefront's price context is applied. Different applications (for example a Swedish and a Norwegian storefront) can have different default price lists, sales areas, VAT rates, and currencies, so the same SKU can return a different calculated price depending on which application ID is used. Use ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_config_list_applications"]}," to list all applications for the client, then switch between them to compare how different storefronts price the same product."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"tools"},"children":["Tools"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"list-price-lists"},"children":["List Price Lists"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_pricing_list_price_lists"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Lists price lists for the client with their codes, names, currencies, types, validity dates, and status."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Use this tool"]}," to understand the client's pricing structure, find price list codes and IDs, or audit which price lists are active, upcoming, or have ended. The ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["filter"]}," parameter controls which lifecycle state to return — ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"open\""]}," (default) returns active and upcoming lists, ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"active\""]}," returns only currently valid ones, ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"inactive\""]}," returns ended or deactivated ones."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Parameters"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["applicationId"]}," — any valid application ID for the client."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["filter"]}," — lifecycle filter: ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"open\""]}," (default), ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"active\""]},", or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"inactive\""]},"."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Output"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A list of price lists with their IDs, codes, names, currencies, validity dates, sales area relationships, and application-scoped flags."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"get-price-list"},"children":["Get Price List"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_pricing_get_price_list"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Returns full details for a single price list — core settings, default pricing rule, override pricing rules, and population configuration."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Use this tool"]}," before updating a price list, when diagnosing how a specific price list is configured, or to read the current pricing rules before modifying them. Accepts price list code or numeric ID."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Parameters"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["applicationId"]}," — any valid application ID for the client."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["price_list"]}," — price list code or numeric ID. Codes are preferred."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Output"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Complete price list configuration including settings, default pricing rule, category/manufacturer-level override rules, and population rules."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"list-rounding-rules"},"children":["List Rounding Rules"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_pricing_list_rounding_rules"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Lists all rounding rules configured for the client, with their value ranges and rounding behaviour."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Use this tool"]}," to understand how prices are rounded for a given currency, or when verifying that a new price list will have a rounding rule applied correctly. Rounding rules are applied implicitly based on the price list's currency — they are not linked directly to a price list."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Parameters"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["applicationId"]}," — any valid application ID for the client."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Output"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A list of rounding rules with their IDs, names, currency, type, and the value range entries that define rounding behaviour."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"get-rounding-rule"},"children":["Get Rounding Rule"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_pricing_get_rounding_rule"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Returns full details for a single rounding rule."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Use this tool"]}," when you need to inspect the exact rounding configuration for a specific rule — for example when verifying that a new price list's currency is covered."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Parameters"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["applicationId"]}," — any valid application ID for the client."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["rounding_rule_id"]}," — numeric ID from ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_pricing_list_rounding_rules"]},"."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Output"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The rounding rule with all value range entries and rounding behaviour settings."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"check-price-list-setup"},"children":["Check Price List Setup"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_pricing_check_price_list_setup"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Audits the pricing configuration for the client — or a single price list — and returns a structured health report with issues, warnings, notes, and passed checks."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Use this tool"]}," during pre-deployment validation or as a regular health check. It surfaces structural problems that are difficult to spot by reading individual price list settings."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The tool runs in two modes:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Summary"]}," (default, fast) — list-level checks: duplicate or missing codes, primary price list rules per application, mixed currencies, date validity, missing sales area IDs, and upcoming expiry warnings."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Full"]}," — everything in summary, plus deep per-list checks: warehouse links, pricing rule validity, population rule integrity, and virtual price list constraints."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["When a specific ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["price_list"]}," is provided, full checks always run for that list regardless of mode."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Cross-domain checks (validating that pricing rules do not reference deleted flags, categories, or manufacturers) are available when context is provided from the Product MCP."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Parameters"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["applicationId"]}," — any valid application ID for the client."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["mode"]}," — ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"summary\""]}," (default) or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"full\""]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["price_list"]}," — optional, narrow to a single price list by code or ID."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["max_price_lists"]}," — maximum price lists to run deep checks on in full mode. Default 50, max 500."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["context"]}," — optional cross-domain context: deleted flag IDs, category IDs, and manufacturer IDs from the Product MCP."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Output"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A health report with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["issues[]"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["warnings[]"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["notes[]"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["passed[]"]},", and summary statistics."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"img","attributes":{"src":"/assets/norce-pricing-check-price-list-setup-example.9eb20083a586e84892ff4a172cfea592f48b6befd83414909feb090a01e01d97.fe4eaf73.png","alt":"Example output from Check Price List Setup showing issues, warnings, and passed checks"},"children":[]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"get-sku-prices"},"children":["Get SKU Prices"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_pricing_get_sku_prices"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Reads raw price records for one or more SKUs directly from the database, across all or specific price lists."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Use this tool"]}," for diagnostics and post-import verification — when you need to see exactly what is stored, check update timestamps, or audit which price rule a SKU is on. This tool bypasses cache and business logic."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Do not use this tool to answer \"what does the customer see?\" — use ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_pricing_preview_prices"]}," for that."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Parameters"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["applicationId"]}," — any valid application ID for the client."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["part_nos"]}," — one or more SKU part numbers. Maximum 50 per call."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["price_list_filters"]}," — optional list of price list codes or IDs to limit results."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["include_inactive"]}," — set to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]}," to include deactivated price records."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["include_sku_status"]}," — set to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]}," to include the product's active/coming/expiring status."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["include_audit_fields"]}," — set to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]}," to include last updated timestamps and editor information. Useful when diagnosing when a price was last changed."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["include_info_fields"]}," — set to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]}," to include any client-configured extra fields on the price record."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["include_structure_items"]}," — set to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]}," to expand item-level price rules for products using structure calculation pricing. Only relevant for those specific products."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Output"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Per part number and price list: sale price, price rule, cost fields, standard and recommended prices, active status, and (optionally) audit timestamps and custom info fields."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"preview-prices"},"children":["Preview Prices"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_pricing_preview_prices"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Returns the calculated best price for one or more products as the storefront would show it — with business rules, VAT, and caching applied."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Use this tool"]}," to answer \"what will the customer see?\" after a price list change or import, or to simulate pricing for different customer segments, sales areas, or currencies. You can also pass a different ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["applicationId"]}," to compare how the same SKU is priced on two different storefronts — for example to check whether the Swedish and Norwegian storefronts return the correct prices for the same product. For ground truth after an import, use ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_pricing_get_sku_prices"]}," instead — this tool may return cached values."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Parameters"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["applicationId"]}," — any valid application ID for the client."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["part_nos"]}," — one or more SKU part numbers. Maximum 50 per call."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["sales_area_id"]}," — sales area for VAT calculation. Defaults to the application's primary sales area. Use ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_config_get_application_overview"]}," to find sales area IDs."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["customer_id"]}," — optional, simulate customer-specific pricing."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["company_id"]}," — optional, simulate B2B pricing context."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["price_list_seed"]}," — optional list of price list codes or IDs to simulate the price lists available in the session."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["currency_id"]}," — optional, simulate a specific currency context."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Output"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Per product: calculated sale price (ex and inc VAT), recommended price, catalog price, VAT rate, and the price list that produced the result."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"preview-price-detail"},"children":["Preview Price Detail"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_pricing_preview_price_detail"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Deep price inspection for a single product — includes cost fields, margin data, and the full quantity break price table when applicable."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Use this tool"]}," when you need more detail than ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_pricing_preview_prices"]}," provides: cost fields for margin verification, or all quantity break pricing tiers in one call. Like ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["preview_prices"]},", this applies business logic and may return cached values — not raw database values. Pass a different ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["applicationId"]}," to compare pricing detail across storefronts."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Parameters"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["applicationId"]}," — any valid application ID for the client."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["part_no"]}," — a single SKU part number."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["sales_area_id"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["customer_id"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["company_id"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["price_list_seed"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["currency_id"]}," — same pricing context parameters as ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_pricing_preview_prices"]},"."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Output"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Full price detail with cost fields, margin data, quantity break flag, and (when the product has quantity breaks) the complete price table per quantity tier."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"get-best-price-history"},"children":["Get Best Price History"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_pricing_get_best_price_history"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Returns the best price history log for one or more products — an audit trail of every moment the publicly available best price changed."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Use this tool"]}," for EU Omnibus Directive compliance work. The Omnibus Directive requires retailers to show the lowest price from the preceding 30 days before marking a product as on sale. This tool provides the data needed to verify and demonstrate compliance."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Use ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["qty_break_one_only"]}," for compliance audits — volume pricing tiers are not relevant for Omnibus purposes."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Parameters"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["applicationId"]}," — any valid application ID for the client."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["part_nos"]}," — one or more SKU part numbers. Maximum 20 per call."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["date_from"]}," / ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["date_to"]}," — optional date range for the history window."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["qty_break_one_only"]}," — set to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]}," to filter to base unit price changes only. Recommended for compliance use."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Output"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A chronological log of best price change events per product, with the price, price list, currency, and timestamp of each change."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"import-sku-prices"},"children":["Import SKU Prices"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_pricing_import_sku_prices"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Imports or updates price records at the product–price list level as an asynchronous batch job. Returns a job ID — use ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_pricing_get_import_job_status"]}," to confirm completion."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Use this tool"]}," when updating prices from an external source such as an ERP, supplier feed, or campaign file."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Important: always batch."]}," Collect all records before calling and pass them in a single call. Never call once per product."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Important: declare ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["fields_to_set"]},"."]}," This parameter is required and controls exactly which fields are written. Only the fields you declare are touched on existing records — all other fields remain unchanged. This prevents accidental overwrites when updating a subset of price fields. For example, if you are only updating ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["price_sale"]},", declare only ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"price_sale\""]}," in ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["fields_to_set"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Important: use price list codes, not IDs."]}," The import uses price list codes (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["price_list_code"]}," per record), not numeric IDs."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Parameters"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["applicationId"]}," — any valid application ID for the client."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["records"]}," — batch of price records, minimum 1 and maximum 5000 per call. Each record requires a part number and price list code. All price and cost fields are optional per record, written only if declared in ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["fields_to_set"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["fields_to_set"]}," — the fields to write. Required. Only these fields are updated on existing records."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["fields_to_ignore_when_empty"]}," — optional subset of ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["fields_to_set"]},". Fields listed here will not be cleared when their value is null in a specific record. Useful for mixed batches where not every row has every field populated."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["force_confirm"]}," — required on stage and production."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Output"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A job ID, initial status, record count received, and any immediate validation failures. Poll ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_pricing_get_import_job_status"]}," for the final result."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"get-import-job-status"},"children":["Get Import Job Status"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_pricing_get_import_job_status"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Checks the status of an asynchronous price import job."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Use this tool"]}," after ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_pricing_import_sku_prices"]}," to confirm the import completed and check for errors. Poll until ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["isFinished"]}," is ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]}," — typical processing time is 5–30 seconds for small batches, longer for large ones."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Status codes:"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["1"]}," = Initialized, ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["2"]}," = Succeeded, ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["3"]}," = Failed, ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["4"]}," = Validation failed."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Parameters"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["applicationId"]}," — any valid application ID for the client."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["job_id"]}," — the job ID returned by ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_pricing_import_sku_prices"]},"."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Output"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Job status, finish flag, record counts (total, inserted, updated, failed), and processing timestamps."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"create-price-list"},"children":["Create Price List"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_pricing_create_price_list"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Creates a new price list. Pricing rules and population rules are configured separately after creation using the update tools."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Use this tool"]}," when setting up a new client environment, adding a campaign price list, or creating a market-specific price list. The price list code must be unique and is used by the Connect API for price imports — choose it carefully."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Parameters"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["applicationId"]}," — any valid application ID for the client."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["code"]}," — unique price list code. Used by the Connect API for imports — changing it later will break existing integrations."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["name"]}," — display name."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["currency_id"]}," — currency for prices in this list. Use ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_config_get_client_overview"]}," to find currency IDs."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["sort_order"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["valid_from"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["valid_to"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["is_active"]}," — optional settings."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["force_confirm"]}," — not required. Creation proceeds with a warning on stage and production."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Output"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The created price list with its assigned numeric ID."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"update-price-list-settings"},"children":["Update Price List Settings"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_pricing_update_price_list_settings"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Updates general settings on an existing price list — name, code, currency, validity dates, sort order, active status, parent price list, and sales area. Only the fields provided are changed."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Use this tool"]}," to activate or deactivate a price list, adjust its validity window, link it to a parent price list (for campaign inheritance), or assign it to a sales area. To update pricing rules or population rules, use the dedicated update tools instead."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Important:"]}," Changing a price list code will break any Connect API imports that reference the old code."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Parameters"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["applicationId"]}," — any valid application ID for the client."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["price_list"]}," — price list code or numeric ID."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["name"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["code"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["currency_id"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["sort_order"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["valid_from"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["valid_to"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["is_active"]}," — any combination of settings to update."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["parent_price_list_id"]}," — link to a parent price list for campaign inheritance, or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["null"]}," to detach."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["sales_area_id"]}," — assign to a sales area for VAT context. Use ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_config_get_client_overview"]}," to find sales area IDs."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["chosen_warehouse_id"]}," / ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["chosen_location_id"]}," — couple the price list to a specific warehouse and location. The two must be provided together."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["force_confirm"]}," — required on stage and production when changing the warehouse coupling (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["chosen_warehouse_id"]},"); other settings changes proceed with a warning there."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Output"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The updated price list object."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"update-price-list-pricing-rules"},"children":["Update Price List Pricing Rules"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_pricing_update_price_list_pricing_rules"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Updates the default pricing rule and category/manufacturer-level override rules for a price list."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Use this tool"]}," to change how prices are calculated for the price list — the default rule that applies to all products, and any overrides for specific categories, manufacturers, or value ranges."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Important:"]}," The ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["pricing_rules"]}," array replaces all existing override rules. Always read the current rules first with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_pricing_get_price_list"]}," to avoid losing existing configuration."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The default pricing rule determines how the sale price is derived — for example as a margin on purchase cost, a discount from the recommended price, or a fixed price set per product via import. The rule ID and value work together: the value's meaning depends on which rule is selected (a percentage for margin rules, a discount amount for fixed discount rules, and so on)."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Parameters"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["applicationId"]}," — any valid application ID for the client."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["price_list"]}," — price list code or numeric ID."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["default_price_rule_id"]}," — the default pricing rule for this price list."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["default_price_rule_value"]}," — the value for the default rule; meaning varies by rule type."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["default_supplement_charge_percentage"]}," — percentage surcharge added to cost before rule calculation, for cost-based rules."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["default_limit_to_price_recommended"]}," — cap the calculated price at the recommended price."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["default_minimum_product_margin_percentage"]}," — minimum margin floor applied across all rules on this price list."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["inherit_structure_calculation_rule"]}," — controls how discounts are distributed across structure items."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["pricing_rules"]}," — the complete set of category/manufacturer-level override rules."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["force_confirm"]}," — required on stage and production."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Output"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Confirmation of the update. Read the price list again with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_pricing_get_price_list"]}," to verify."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"update-price-list-population-rules"},"children":["Update Price List Population Rules"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_pricing_update_price_list_population_rules"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Updates the population rules that control which products are included in or excluded from a price list."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Use this tool"]}," when configuring which products a price list covers — for example limiting it to specific manufacturers, flags, or product sets. Population rules are read first and merged with your changes before writing."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Parameters"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["applicationId"]}," — any valid application ID for the client."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["price_list"]}," — price list code or numeric ID."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["population_rules"]}," — the full population rules object. Read the current state from ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_pricing_get_price_list"]}," and modify the fields you want to change before passing it here."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["force_confirm"]}," — not required. The update proceeds with a warning on stage and production."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Output"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Confirmation that population rules were updated."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"typical-workflows"},"children":["Typical workflows"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"diagnosing-a-price-discrepancy"},"children":["Diagnosing a price discrepancy"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Call ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_pricing_get_sku_prices"]}," to see the raw stored price, which rule is applied, and when the record was last updated."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Call ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_pricing_preview_prices"]}," to see what the storefront is actually showing. You can run this with different ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["applicationId"]}," values to compare how the same product is priced across storefronts — for example, checking whether the Swedish and Norwegian storefronts return different prices for the same SKU."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Compare the two — if the raw price looks correct but the preview does not, the issue is in business logic, VAT calculation, or caching."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["If the raw price itself looks wrong, check the import job history or call ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_pricing_get_price_list"]}," to verify the price list's default rule."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"importing-prices-from-an-external-source"},"children":["Importing prices from an external source"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Call ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_pricing_list_price_lists"]}," to get the price list codes needed for the import records."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Collect all records into a single batch and declare ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["fields_to_set"]}," for the fields you are writing."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Call ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_pricing_import_sku_prices"]}," with the full batch."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Poll ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_pricing_get_import_job_status"]}," until ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["isFinished"]}," is ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Verify a sample of SKUs with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_pricing_get_sku_prices"]}," to confirm the values landed correctly."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"validating-pricing-configuration-before-go-live"},"children":["Validating pricing configuration before go-live"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Call ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_pricing_check_price_list_setup"]}," in ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"full\""]}," mode to run deep checks across all price lists."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Review the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["issues[]"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["warnings[]"]}," in the report."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["For any price list with issues, call ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_pricing_get_price_list"]}," to inspect the current configuration and determine what needs to be corrected."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"setting-up-a-new-campaign-price-list"},"children":["Setting up a new campaign price list"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Call ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_pricing_create_price_list"]}," with the code, name, currency, and validity dates. Set the start date in the future to activate the campaign on a specific date."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Call ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_pricing_update_price_list_settings"]}," to link it to a parent price list and assign the correct sales area."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Call ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_pricing_update_price_list_pricing_rules"]}," to configure how campaign prices are calculated."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Call ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_pricing_update_price_list_population_rules"]}," if the campaign applies only to specific products, manufacturers, or flags."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Verify the setup with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_pricing_check_price_list_setup"]}," for that specific price list."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Call ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_pricing_preview_prices"]}," for a sample of affected SKUs to inspect what prices they will have when the campaign activates — the backend already reflects the campaign pricing even before the start date, so you can validate the outcome in advance."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"omnibus-compliance-check-before-a-sale"},"children":["Omnibus compliance check before a sale"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Call ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_pricing_get_best_price_history"]}," with the relevant part numbers, a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["date_from"]}," 30 days before the sale start date, and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["qty_break_one_only = true"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Review the lowest price recorded in that window per product."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Verify that the planned sale price is not presented as a discount from a higher price than the actual lowest price in the period."]}]}]},"headings":[{"value":"Norce Pricing MCP — Tool Reference","id":"norce-pricing-mcp--tool-reference","depth":1},{"value":"Two views of price data","id":"two-views-of-price-data","depth":2},{"value":"Tools","id":"tools","depth":2},{"value":"List Price Lists","id":"list-price-lists","depth":3},{"value":"Get Price List","id":"get-price-list","depth":3},{"value":"List Rounding Rules","id":"list-rounding-rules","depth":3},{"value":"Get Rounding Rule","id":"get-rounding-rule","depth":3},{"value":"Check Price List Setup","id":"check-price-list-setup","depth":3},{"value":"Get SKU Prices","id":"get-sku-prices","depth":3},{"value":"Preview Prices","id":"preview-prices","depth":3},{"value":"Preview Price Detail","id":"preview-price-detail","depth":3},{"value":"Get Best Price History","id":"get-best-price-history","depth":3},{"value":"Import SKU Prices","id":"import-sku-prices","depth":3},{"value":"Get Import Job Status","id":"get-import-job-status","depth":3},{"value":"Create Price List","id":"create-price-list","depth":3},{"value":"Update Price List Settings","id":"update-price-list-settings","depth":3},{"value":"Update Price List Pricing Rules","id":"update-price-list-pricing-rules","depth":3},{"value":"Update Price List Population Rules","id":"update-price-list-population-rules","depth":3},{"value":"Typical workflows","id":"typical-workflows","depth":2},{"value":"Diagnosing a price discrepancy","id":"diagnosing-a-price-discrepancy","depth":3},{"value":"Importing prices from an external source","id":"importing-prices-from-an-external-source","depth":3},{"value":"Validating pricing configuration before go-live","id":"validating-pricing-configuration-before-go-live","depth":3},{"value":"Setting up a new campaign price list","id":"setting-up-a-new-campaign-price-list","depth":3},{"value":"Omnibus compliance check before a sale","id":"omnibus-compliance-check-before-a-sale","depth":3}],"frontmatter":{"seo":{"title":"AI - Norce Pricing MCP Tool Reference","description":"Reference for all tools exposed by the Norce Pricing MCP Server — price lists, pricing rules, rounding, SKU prices, price imports, preview, and Omnibus audit log.","keywords":"MCP, model context protocol, pricing MCP, price lists, pricing rules, SKU prices, omnibus, tool reference"},"metadata":{"redocly_category":"Development","owner":"MB"}},"lastModified":"2026-09-16T06:55:22.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/ai/norce-pricing-mcp-tool-reference","userData":{"isAuthenticated":false,"teams":["anonymous"]}}