{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-ai/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":[]},"type":"markdown","redocly_category":"Development","owner":"MB"},"seo":{"title":"AI - Norce Product MCP Tool Reference","description":"Reference for all tools exposed by the Norce Product MCP Server — categories, parametrics, flags, manufacturers, variant groups, product imports, content updates, and diagnostic checks.","keywords":"MCP, model context protocol, product MCP, catalogue, parametrics, flags, variant, import, tool reference"},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"norce-product-mcp--tool-reference"},"children":["Norce Product MCP — Tool Reference"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This page documents the tools exposed by the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Norce Product 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":"key-concepts"},"children":["Key concepts"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"two-views-of-product-data"},"children":["Two views of product data"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The Product MCP exposes products through two different lenses, and choosing the right one matters:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Raw view"]}," — ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_product_query_productskus"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_product_query_variantized_products"]},", and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_product_lookup_products"]}," query the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Query API"]}," directly. Results reflect the stored state of the data with no business logic or caching applied. Use these for diagnostic reads, import verification, and identifier lookups."]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Storefront view"]}," — ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_product_preview_product"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_product_search_products"]}," call the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["ProductApi"]},". Results include resolved prices, on-hand status, applied availability rules, and customer-specific pricing. Use these to see what a customer or storefront would 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 perspective you are seeing. Different applications (for example a Swedish storefront and a Norwegian storefront) can have different price lists, sales areas, and availability rules, so the same product may render differently depending on which application ID is used. Use ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_config_list_applications"]}," to discover all application IDs for the client, then switch between them to compare how different storefronts present the same product."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"import-split-master-data-vs-content"},"children":["Import split: master data vs content"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Creating and updating products uses two separate tools for two distinct types of data:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_product_upsert_products"]}]}," handles ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["ERP-style master data"]}," — creating SKUs, setting part numbers, status, type, EAN codes, logistic dimensions, and VAT. Use this when the data comes from a product master or ERP system."]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_product_update_content"]}]}," handles ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["PIM-style content"]}," — updating images, text (name, description, SEO fields), parametric values, flags, and category assignments on products that already exist. Use this when the data comes from a content management or enrichment workflow."]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Both tools go via the Connect API and return a job ID for async status polling."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"multi-variant-grouping--the-most-common-import-failure"},"children":["Multi-variant grouping — the most common import failure"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["When creating or updating a product that has multiple variants (for example a shirt in red/blue or S/M/L), all SKUs in the same variant cluster must share the same ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["code"]}," value in the import payload. The Product MCP auto-groups records with the same code into a single Connect entry."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Submitting variants as separate records without a shared code causes Connect to silently report success with zero inserts — or fail with a \"Multiple items with same variant code\" error. This is the most common cause of import failures."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"metadata-tools"},"children":["Metadata tools"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["These tools read and manage the reference data that products are built from — categories, parametrics, flags, manufacturers, file types, relation types, and variant groups."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"list-product-categories"},"children":["List Product Categories"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_product_list_categories"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Lists all product categories as a flat list with IDs, codes, names, parent references, and active status. Translations and VAT code assignments are omitted — use ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_product_get_category"]}," for those."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Use this tool"]}," to browse the category tree, find category IDs or codes before assigning products, or get a quick overview of the category structure."]},{"$$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":["parent_id"]}," — filter to direct children of a specific category ID."]},{"$$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 inactive categories."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Output"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A flat list of categories with their IDs, codes, names, parent references, sort order, and active status."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"get-category"},"children":["Get Category"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_product_get_category"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Returns full details for a single category — including translations (Cultures), VAT code assignments, and all parametrics currently assigned to the category."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Use this tool"]}," before assigning or modifying parametrics on a category, to see the current state before running a full-replace operation."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Accepts either ID (faster, direct lookup) or code (slightly slower, fetches full list and filters)."]},{"$$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":["id"]}," — category ID (preferred — direct lookup)."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["code"]}," — category code (slower — fetches list and filters)."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Output"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The full category record including VAT code assignments, cultures with translations, and the list of assigned parametrics."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"list-parametric-groups"},"children":["List Parametric Groups"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_product_list_parametric_groups"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Lists all parametric groups — the logical containers that organise parametrics into sets."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Use this tool"]}," to discover group IDs before creating parametrics in a specific group, or to understand how the parametric schema is structured."]},{"$$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":["include_inactive"]}," — set to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]}," to include inactive groups."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Output"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A list of parametric groups with their IDs, codes, names, sort order, and translations."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"list-parametrics"},"children":["List Parametrics"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_product_list_parametrics"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Lists all parametric definitions with their type, group, searchability, filterability, and translations."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Use this tool"]}," to find parametric IDs or codes before assigning values to products, or to audit the full parametric schema for a client."]},{"$$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":["group_id"]}," — filter to parametrics in a specific group."]},{"$$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 inactive parametrics."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Output"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A list of parametrics with their IDs, codes, names, types, group assignments, and translation entries."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"get-parametric"},"children":["Get Parametric"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_product_get_parametric"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Returns full details for a single parametric — including all configured list or multi-select values for parametrics of type ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["list"]}," or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["multiple"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Use this tool"]}," before calling ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_product_update_parametric"]}," to see the current list values. Since updating values is a full-replace operation, you need the complete current state before adding or removing individual values."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Accepts either ID (faster) or code (slightly slower)."]},{"$$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":["id"]}," — parametric ID (direct lookup)."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["code"]}," — parametric code (slower — fetches list and filters)."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Output"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The parametric definition including all list values or multi-select values (if applicable), with translations per value."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"list-product-flags"},"children":["List Product Flags"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_product_list_flags"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Lists all product flag groups with their nested flags. Returns the complete flag structure in a single call."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Use this tool"]}," to discover flag codes before setting or unsetting flags on products, or to audit which flags are defined and at which level."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Flag ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["TypeId"]}," controls what the flag applies to: ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["1"]}," = product-level, ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["2"]}," = SKU/variant-level."]},{"$$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":["include_inactive"]}," — set to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]}," to include inactive flag groups and flags."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Output"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A list of flag groups, each with their nested flags including codes, names, type (product vs SKU level), and translation entries."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"list-manufacturers"},"children":["List Manufacturers"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_product_list_manufacturers"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Lists all manufacturers with their codes, names, and translations. The manufacturer code is used when linking products to manufacturers in imports (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ManufacturerCode"]}," field)."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Use this tool"]}," to find manufacturer codes or IDs before creating products or looking up products by manufacturer."]},{"$$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":["include_inactive"]}," — set to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]}," to include inactive manufacturers."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Output"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A list of manufacturers with their IDs, codes, names, sort order, and translations."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"list-file-types"},"children":["List File Types"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_product_list_file_types"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Lists all product file types — the type definitions that control what kinds of files (images, PDFs, videos, etc.) can be attached to products."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Use this tool"]}," to discover file type codes before attaching images or files in a content import."]},{"$$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":["include_inactive"]}," — set to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]}," to include inactive file types."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Output"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A list of file types with their IDs, codes, names, and translations."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"list-relation-types"},"children":["List Relation Types"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_product_list_relation_types"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Lists all product relation type definitions — the types that define how products can be related to each other (accessories, alternatives, bundle contents, etc.)."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Use this tool"]}," before importing product relations to find the correct relation type codes."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["IsBidirectional"]}," means a relation A → B automatically creates the reverse relation B → A."]},{"$$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":["include_inactive"]}," — set to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]}," to include inactive relation types."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Output"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A list of relation types with their IDs, codes, names, bidirectionality flag, and translations."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"list-variant-groups"},"children":["List Variant Groups"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_product_list_variant_groups"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Lists all product variant group definitions with their variant type axes — the parametrics that define which dimensions (such as Size, Color) make up the variant structure."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Use this tool"]}," to find variant group codes before assigning products to a variant group in a content import."]},{"$$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":["include_inactive"]}," — set to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]}," to include inactive variant groups."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Output"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A list of variant groups, each with their variant type axes (parametric ID, type, sort order), and translations."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"list-missing-translations"},"children":["List Missing Translations"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_product_list_missing_translations"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Sweeps all product metadata entities and returns those missing translations for a specific culture. Checks categories, parametric groups, parametrics, flag groups, flags, file types, relation types, and variant groups in a single call."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["An entity is considered untranslated if it has no culture entry for the requested code, or if ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["IsTranslated = false"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Use this tool"]}," when preparing for a new market launch, doing a translation completeness audit before go-live, or as a routine maintenance check after metadata changes — for example after adding new categories, parametrics, or flags — to catch any newly introduced entities that are missing translations."]},{"$$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":["culture_code"]}," — the culture to check, for example ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"en-GB\""]}," or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"de-DE\""]},"."]},{"$$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 inactive entities in the sweep."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Output"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A summary with total entities checked and total missing, plus the full list of untranslated entities with their type, ID, code, and name."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"create-or-update-category"},"children":["Create or Update Category"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_product_upsert_category"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Creates a new product category or updates an existing one. Provide ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["id"]}," to update; omit it to create."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Important:"]}," Setting ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["is_active = false"]}," hides all products assigned to this category from the storefront. This requires ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["force_confirm"]}," on stage and production and should be done deliberately."]},{"$$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":["id"]}," — category ID for update. Omit to create."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["code"]}," — unique category code."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["name"]}," — display name (required for create)."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["parent_id"]}," — parent category ID. Set to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["null"]}," to place at the root."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["is_active"]}," — set to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["false"]}," to soft-delete."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["sort_order"]}," — display sort order."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["cultures"]}," — translations, each with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["culture_code"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["name"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["force_confirm"]}," — required on stage and production when deactivating (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["is_active = false"]},"). Create and update 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 created or updated category with its ID, code, name, parent, active status, sort order, and translations."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"assign-parametrics-to-category"},"children":["Assign Parametrics to Category"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_product_assign_category_parametrics"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Sets the full list of parametrics assigned to a category."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Important:"]}," This is a full-replace operation — the list you provide becomes the complete set of parametrics for the category. Always call ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_product_get_category"]}," first to retrieve the current assignments, then include all existing parametric IDs plus any new additions in your request."]},{"$$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":["category_id"]}," — category ID."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["parametric_ids"]}," — the complete list of parametric IDs to assign."]},{"$$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 assigned parametric IDs."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"create-or-update-parametric-group"},"children":["Create or Update Parametric Group"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_product_upsert_parametric_group"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Creates a new parametric group or updates an existing one. Provide ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["id"]}," to update; omit it to create."]},{"$$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":["id"]}," — group ID for update. Omit to create."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["code"]}," — unique code."]},{"$$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":["is_active"]}," — set to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["false"]}," to soft-delete."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["sort_order"]}," — display sort order."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["cultures"]}," — translations, each with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["culture_code"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["name"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["force_confirm"]}," — required on stage and production when deactivating. Create and update 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 created or updated parametric group."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"create-parametric"},"children":["Create Parametric"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_product_create_parametric"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Creates a new parametric definition. The type is required and validated before creation. Code uniqueness is checked — creation fails if a parametric with the same code already exists. New parametrics are always created as active."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["To update an existing parametric, use ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_product_update_parametric"]}," instead."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Parametric types:"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["text"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["html"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["int"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["decimal"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["date"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["boolean"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["list"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["multiple"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Important:"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["is_public = true"]}," automatically assigns the parametric to all categories. Use this only for truly global attributes that should appear everywhere."]},{"$$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":["type"]}," — parametric type (required)."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["code"]}," — unique code. Must not already exist."]},{"$$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":["description"]}," — longer description."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["uom"]}," — unit of measurement, for example ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"kg\""]}," or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"mm\""]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["group_id"]}," — group ID. The group must exist and be active."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["sort_order"]}," — display sort order."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["is_required"]}," — mark as required on products."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["is_favorite"]}," — pin as favourite in admin UI."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["is_public"]}," — auto-assign to all categories."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["is_read_only"]}," — disable editing in admin UI."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["is_hidden"]}," — hide from front-end."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["default_is_variant_unique"]}," — default to variant level when merging products."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["cultures"]}," — translations."]},{"$$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 parametric definition with its full set of properties."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"update-parametric"},"children":["Update Parametric"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_product_update_parametric"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Updates an existing parametric definition and optionally replaces its enumerated list or multi-select values."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Important:"]}," If ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["list_values"]}," or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["multiple_values"]}," are provided, they fully replace all existing values for the parametric. Always call ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_product_get_parametric"]}," first to retrieve current values before replacing."]},{"$$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":["id"]}," — parametric ID (required)."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["code"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["name"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["description"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["uom"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["group_id"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["sort_order"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["is_active"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["is_required"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["is_favorite"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["is_public"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["is_read_only"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["is_hidden"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["default_is_variant_unique"]}," — any combination."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["cultures"]}," — translations."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["list_values"]}," — complete replacement list for ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["type=list"]}," parametrics. Each entry requires ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["code"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["value"]},". Include ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["id"]}," for existing values; omit it for new ones."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["multiple_values"]}," — complete replacement list for ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["type=multiple"]}," parametrics. Same structure as ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["list_values"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["force_confirm"]}," — required on stage and production when replacing list/multiple values. Other updates 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 parametric and confirmation of any list or multiple value updates."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"create-or-update-flag-group"},"children":["Create or Update Flag Group"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_product_upsert_flag_group"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Creates a new product flag group or updates an existing one. Provide ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["id"]}," to update; omit it to create."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["is_multiple_choice"]}," controls whether multiple flags from this group can be set on a product simultaneously."]},{"$$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":["id"]}," — group ID for update. Omit to create."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["code"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["name"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["is_active"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["is_multiple_choice"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["is_favorite"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["sort_order"]}," — any combination."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["cultures"]}," — translations."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["force_confirm"]}," — required on stage and production when deactivating. Create and update 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 created or updated flag group."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"create-or-update-flag"},"children":["Create or Update Flag"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_product_upsert_flag"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Creates a new product flag or updates an existing one. Provide ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["id"]}," to update; omit it to create."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["type_id"]}," controls scope: ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["1"]}," = applied at the product level, ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["2"]}," = applied at the SKU/variant level."]},{"$$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":["id"]}," — flag ID for update. Omit to create."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["code"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["name"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["group_id"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["type_id"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["is_active"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["is_manually_editable"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["sort_order"]}," — any combination."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["cultures"]}," — translations."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["force_confirm"]}," — required on stage and production when deactivating. Create and update 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 created or updated flag."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"create-or-update-manufacturer"},"children":["Create or Update Manufacturer"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_product_upsert_manufacturer"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Creates a new manufacturer or updates an existing one. Provide ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["id"]}," to update; omit it to create."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The manufacturer code is used in product imports to link products to manufacturers."]},{"$$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":["id"]}," — manufacturer ID for update. Omit to create."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["code"]}," — unique manufacturer code. Used in product imports."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["name"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["is_active"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["sort_order"]}," — any combination."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["cultures"]}," — translations."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["force_confirm"]}," — required on stage and production when deactivating. Create and update 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 created or updated manufacturer."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"create-update-or-delete-file-type"},"children":["Create, Update, or Delete File Type"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_product_upsert_file_type"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Creates a new product file type, updates an existing one, or hard-deletes one."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["File types are unusual in that they support a true hard-delete in addition to the normal soft-deactivate pattern used by all other metadata entities."]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["To ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["hard-delete"]},": provide ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["id"]}," and set ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["delete = true"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["To ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["soft-deactivate"]},": provide ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["id"]}," and set ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["is_active = false"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["To ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["create"]},": omit ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["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":["id"]}," — file type ID. Required for update or delete."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["delete"]}," — set to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]}," to hard-delete."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["code"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["name"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["is_active"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["sort_order"]}," — any combination."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["cultures"]}," — translations."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["force_confirm"]}," — required on stage and production when deactivating or deleting. Create and update proceed with a warning there."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Output"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Confirmation message for delete, or the created/updated file type object."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"create-or-update-relation-type"},"children":["Create or Update Relation Type"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_product_upsert_relation_type"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Creates a new product relation type or updates an existing one. Provide ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["id"]}," to update; omit it to create."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["is_bidirectional = true"]}," means a relation A → B automatically creates the reverse relation B → A."]},{"$$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":["id"]}," — relation type ID for update. Omit to create."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["code"]}," — unique code. Used in relation imports."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["name"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["is_active"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["is_bidirectional"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["sort_order"]}," — any combination."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["cultures"]}," — translations."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["force_confirm"]}," — required on stage and production when deactivating. Create and update 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 created or updated relation type."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"create-or-update-variant-group"},"children":["Create or Update Variant Group"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_product_upsert_variant_group"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Creates a new product variant group or updates an existing one. Provide ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["id"]}," to update; omit it to create."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Each variant group has variant type axes — the parametrics that define the variant dimensions (for example Size and Color for a Clothing variant group)."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Important:"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["variant_types"]}," is a full-replace field — if you provide it, the entire list of variant type axes is replaced. Always call ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_product_list_variant_groups"]}," first to see the current state."]},{"$$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":["id"]}," — variant group ID for update. Omit to create."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["code"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["name"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["is_active"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["sort_order"]}," — any combination."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["variant_types"]}," — complete replacement list of variant type axes. Each entry requires a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["parametric_id"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["cultures"]}," — translations."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["force_confirm"]}," — required on stage and production when deactivating. Create and update — including ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["variant_types"]}," replacement — 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 created or updated variant group with its variant type axes and translations."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"product-import-tools"},"children":["Product import tools"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["These tools create and update product data via the Connect API. All import operations are asynchronous — use ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_product_get_import_job_status"]}," to confirm completion."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"upsert-products"},"children":["Upsert Products"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_product_upsert_products"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Creates or updates SKUs via the Connect API — the ERP-style import path for product master data."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Use this tool"]}," when importing core product identity and logistics data: part numbers, manufacturer references, status, type, EAN codes, dimensions, VAT, and activation dates. For updating text content, images, parametrics, and flags on existing products, use ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_product_update_content"]}," instead."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Product identification:"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ManufacturerCode"]}," + ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ManufacturerPartNo"]}," identifies the product cluster and variant."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PartNo"]}," identifies the SKU. Omit on new products to let Norce generate one; required for existing products."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["code"]}," groups multiple variants under one product cluster — required when creating a product with multiple variants."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Multi-variant grouping:"]}," All variants in the same cluster must share the same ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["code"]}," value. The tool auto-groups entries with the same code into a single Connect payload. This is critical — see ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"#multi-variant-grouping--the-most-common-import-failure"},"children":["Multi-variant grouping"]}," above."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Note:"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["name"]}," is set via ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["NameCreateOnly"]}," — it will not overwrite an existing product name. Use ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_product_update_content"]}," to update names on existing products."]},{"$$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":["products"]}," — list of product records to upsert. Each record requires ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["manufacturer_code"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["manufacturer_part_no"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["name"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["status"]},", and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["type"]},". Optional fields include ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["code"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["part_no"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["primary_category_code"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ean_code"]},", logistic dimensions, dates, VAT, and unit of measurement."]},{"$$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":["Status codes:"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["1"]}," = Active, ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["2"]}," = Coming, ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["3"]}," = Expiring, ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["4"]}," = Hidden, ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["5"]}," = Inactive."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Output"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Job status with inserted, updated, and failed counts, confirmed part numbers, and whether any records were auto-grouped."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"update-product-content"},"children":["Update Product Content"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_product_update_content"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Updates PIM content on existing products via the Connect API. Products must already exist — this tool does not create new SKUs."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Use this tool"]}," for content enrichment: product text (name, description, SEO fields), images, parametric values, flags, additional category assignments, and variant group assignments."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Multi-variant grouping:"]}," When updating content for multiple variants of the same product, provide the same ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["code"]}," on each entry. The tool auto-groups them into a single Connect payload. Without grouping, Connect rejects the job."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Text content levels:"]}," Text fields such as description, title, and meta tags live at either the product level or the variant level — this is configured per client. Use ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["cultures"]}," for product-level text and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["variant_cultures"]}," for variant-level text. ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["name"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["unique_url_name"]}," can be set at both levels."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Category assignment mode:"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["categories_mode"]}," controls how categories are applied — ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"replace\""]}," (default) fully replaces the existing category list, ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"append\""]}," merges with it."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Flag write modes:"]}," Each flag entry supports ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["is_create_only"]}," (only set if the flag record is new) and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["is_limited_update"]}," (only set if new or last updated by the same account). Use ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["is_create_only"]}," to set flags only on first import."]},{"$$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":["products"]}," — list of product content records, each identified by ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["part_no"]},". Optional fields per record: ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["code"]}," (for grouping), ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["main_image"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["additional_images"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["categories"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["categories_mode"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["cultures"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["flags"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["parametrics"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["variant_definition_group_code"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["variant_sort_order"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["variant_cultures"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["variant_main_image"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["variant_additional_images"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["variant_flags"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["variant_parametrics"]},"."]},{"$$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":["Job status with inserted, updated, and failed counts."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"import-product-relations"},"children":["Import Product Relations"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_product_import_relations"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Imports product-to-product relations via the Connect API."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Use this tool"]}," to create accessory, alternative, bundle, or custom relation links between products. ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["relation_type_code"]}," must match an existing relation type — use ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_product_list_relation_types"]}," to find codes."]},{"$$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":["relations"]}," — list of relation records. Each requires ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["part_no"]}," (source), ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["related_part_no"]}," (target), and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["relation_type_code"]},"."]},{"$$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":["Job status with inserted, updated, and failed counts."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"import-structure-items"},"children":["Import Structure Items"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_product_import_structure_items"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Sets the child items for structure (bundle/package) products via the Connect API. The parent SKU must already exist and must be of a structure type."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Before importing, all child PartNos are validated against the Query API — they must exist and have an acceptable status (Active, Coming, Expiring, or Hidden). Inactive children are rejected."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Use this tool"]}," to define or update the component list for bundle products."]},{"$$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":["items"]}," — list of structure definitions, each with a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["parent_part_no"]}," and a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["children"]}," list. Each child requires ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["part_no"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["quantity"]},"."]},{"$$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":["Job status with inserted, updated, and failed counts, plus child validation results."]},{"$$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_product_get_import_job_status"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Checks the status of a Connect API import job."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Use this tool"]}," after any import tool to confirm completion. Poll until ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["IsFinished"]}," is ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Status values:"]}," ",{"$$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"]}," — job ID returned by any of the import tools."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Output"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Job status, finish flag, and record counts (inserted, updated, failed, total)."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"product-query-tools"},"children":["Product query tools"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"lookup-products"},"children":["Lookup Products"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_product_lookup_products"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Lightweight product identifier lookup. Returns PartNo, ProductId, VariantCode, and VariantId — the identifiers needed to pass into other tools — without fetching full product content."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Use this tool"]}," when you need to find products by category, manufacturer, manufacturer part number, type, or parametric value before running an import, content update, or diagnostic check. Also useful for data quality sweeps — finding products that are missing a value, incorrectly configured, or meet a condition that cannot be filtered for in the Admin UI."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["At least one filter must be provided. Multiple filters are AND-combined. See the ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/api-reference/query/queryproducts/openapi/products/productskus"},"children":["ProductSKUs Query API reference"]}," for the full data model (version 2.0)."]},{"$$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":["category_ids"]}," — products in any of these category IDs."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["manufacturer_id"]}," — filter by manufacturer."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["manufacturer_part_no"]}," — exact manufacturer part number lookup."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["type_id"]}," — filter by product type."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["variant_code"]}," — filter by variant code."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["part_nos"]}," — direct PartNo lookup."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["related_to_product_id"]}," — find products related to a given ProductId."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["structure_parent_of"]}," — find structure products that contain a specific PartNo as a child."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["parametric_filter"]}," — OData ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["any()"]}," expression filtering on product parametric values. See ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"#parametric-filter"},"children":["Parametric filter"]}," below."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["filter"]}," — OData ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["$filter"]}," expression on the product record itself. See ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"#filter"},"children":["Filter"]}," below."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["top"]}," / ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["skip"]}," — pagination. Default 100 results, max 500."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Output"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A list of matching products with their identifiers, name, status, type, categories, and related SKU references."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"parametric-filter"},"children":["Parametric filter"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["parametric_filter"]}," parameter uses OData ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["any()"]}," syntax to filter on a product's parametric values. Each condition is scoped to a single parametric (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["p/ParametricId eq <id>"]},") combined with a value check. Multiple conditions are AND-combined."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["LLMs should already be trained on OData syntax — you do not need to know the syntax yourself. Describe what you are looking for in plain language and the AI will construct the correct expression. To help the AI resolve parametric IDs and value types, point it at the parametrics schema via the Norce Assistant MCP, or use ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_product_list_parametrics"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_product_get_parametric"]}," to look them up first."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["See the ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/api-reference/query/queryproducts/openapi/products/productskus#products/productskus/t=response&c=200&path=product/parametrics"},"children":["parametrics field in the ProductSKUs response schema"]}," for all available fields."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Examples"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Find all products where parametric 42 has list value 7:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"header":{"controls":{"copy":{}}},"source":"p/ParametricId eq 42 and p/ListId eq 7\n"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Find products where a decimal parametric (e.g. weight capacity) is between 50 and 200:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"header":{"controls":{"copy":{}}},"source":"p/ParametricId eq 18 and p/DecimalValue ge 50 and p/DecimalValue le 200\n"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Find products where a boolean parametric (e.g. published on amazon) is true:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"header":{"controls":{"copy":{}}},"source":"p/ParametricId eq 31 and p/BooleanValue eq true\n"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Find products where a text parametric contains a specific substring (wildcard):"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"header":{"controls":{"copy":{}}},"source":"p/ParametricId eq 55 and contains(p/DefaultVarcharValue, 'keyword')\n"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Find products that do ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["not"]}," have a specific list value assigned (negation — not possible in Admin UI):"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"header":{"controls":{"copy":{}}},"source":"p/ParametricId eq 42 and p/ListId ne 7\n"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["What else is possible with parametric filter:"]}," filtering on multiple parametrics at once; checking whether a parametric value falls within a date range; combining range and null checks; finding products with any value set for a parametric vs. products with none; matching against specific text patterns."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"filter"},"children":["Filter"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["filter"]}," parameter is a standard OData ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["$filter"]}," expression applied to the product record itself — not to parametric values. Use it to filter on product-level fields such as status, flags, stock, prices, supplier connections, and relations."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Available top-level collections for filtering and expanding"]}]},{"$$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":"Collection"},"children":["Collection"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"What it contains"},"children":["What it contains"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Further expandable paths"},"children":["Further expandable paths"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Product"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Product-level data — content, manufacturer, type, status"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Product/Cultures"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Product/SupplierSkus"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Product/Parametrics"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Product/ParametricMultiple"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Product/Variant"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Product/Flags"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Product/ProductRelations"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PriceLists"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Price list records for the SKU — active, inactive, and future — including cost, overridden rules, and chosen supplier"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["—"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SalesAreas"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Sales areas and the VAT rate for the SKU (falls back to primary category or client default if not set)"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["—"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["OnHands"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Stock records per warehouse/location — on-hand quantity and value, incoming stock, next delivery date, lead time, reservation value, and whether the warehouse is active for the SKU"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["—"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["StructureItems"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Bundle/package child links with quantity — for structure products only"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["StructureItems/PriceLists"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["StructureItems/ItemSku"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["BestPrices"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Historical record of price changes for the application's best price"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["—"]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Examples"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Find products assigned a specific flag (flag ID 12):"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"header":{"controls":{"copy":{}}},"source":"Product/Flags/any(f: f/FlagId eq 12 and f/IsActive eq true)\n"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Find products ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["not assigned"]}," specific flags (flag IDs 38, 39, or 40):"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"header":{"controls":{"copy":{}}},"source":"not Product/Flags/any(f: f/FlagId in (38, 39, 40) and f/IsActive eq true)\n"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Find products stocked at a specific warehouse and location (warehouse ID 4, location ID 4):"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"header":{"controls":{"copy":{}}},"source":"OnHands/any(o: o/WarehouseId eq 4 and o/LocationId eq 4 and o/IsActive eq true)\n"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Find products with stock that has ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["not been updated"]}," in the last 30 days (warehouse ID 4, location ID 4):"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"header":{"controls":{"copy":{}}},"source":"OnHands/any(o: o/WarehouseId eq 4 and o/LocationId eq 4 and o/OnHandLastUpdated lt 2026-05-27T00:00:00Z)\n"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Find products ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["with a supplier connection"]},":"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"header":{"controls":{"copy":{}}},"source":"Product/SupplierSkus/any()\n"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Find products with ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["no supplier connection"]}," (useful for spotting unmapped products):"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"header":{"controls":{"copy":{}}},"source":"not Product/SupplierSkus/any()\n"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Find products connected to a specific supplier (supplier ID 5):"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"header":{"controls":{"copy":{}}},"source":"Product/SupplierSkus/any(s: s/SupplierId eq 5)\n"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Find products marked as dangerous goods:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"header":{"controls":{"copy":{}}},"source":"Product/IsDangerousGoods eq true\n"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Find products where a specific parametric has ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["no value set at all"]}," (data quality sweep — parametric 42 not assigned on any variant):"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"header":{"controls":{"copy":{}}},"source":"Product/Parametrics/all(p: p/ParametricId ne 42)\n"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Find products active on the standard price list (price list ID 4):"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"header":{"controls":{"copy":{}}},"source":"PriceLists/any(p: p/PriceListId eq 4 and p/IsActive eq true)\n"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Find products recently deactivated on a specific price list:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"header":{"controls":{"copy":{}}},"source":"PriceLists/any(p: p/PriceListId eq 4 and p/IsActive eq false and p/StoppedDate gt 2026-01-27T00:00:00Z)\n"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Find products missing unit cost on the standard price list:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"header":{"controls":{"copy":{}}},"source":"PriceLists/any(p: p/PriceListId eq 4 and p/IsActive eq true and p/CostUnit eq 0)\n"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Find products with a chosen supplier from a specific supplier (supplier ID 1) on the standard price list:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"header":{"controls":{"copy":{}}},"source":"PriceLists/any(p: p/PriceListId eq 4 and p/IsActive eq true and p/ChosenSupplierId eq 1)\n"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["What else is possible with filter:"]}," filtering by UNSPSC code; combining flag and stock conditions; finding products below the stock display breakpoint; filtering by product type, active status, or creation date; filtering by product relations; combining any of the above conditions."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"query-product-skus"},"children":["Query Product SKUs"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_product_query_productskus"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Reads raw product data from the Query API by PartNo or ProductId — the diagnostic view with no business logic or caching applied."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Use this tool"]}," to verify imported data, check product status directly from the database, or retrieve the raw state of a product before updating it."]},{"$$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"]}," — lookup by PartNos."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["product_ids"]}," — lookup by ProductIds."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["include_structure_items"]}," — include bundle/package child items."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["include_product_relations"]}," — include related products."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["include_content"]}," — include flags (on Product) and parametrics (on SKU)."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["top"]}," / ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["skip"]}," — pagination. Default 50, max 200."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Output"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Raw Query API product records with SKU fields, product cluster info, cultures, and optionally structure items, relations, flags, and parametrics."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"query-variantized-products"},"children":["Query Variantized Products"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_product_query_variantized_products"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Reads variant cluster data from the Query API — returning the cluster and all its individual variant items together."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Note: the Query API naming is inverted compared to the Product MCP's conventions — in the raw API, \"Variant\" holds the cluster and \"Product\" holds the individual item. This tool renames them in the output to be intuitive: the cluster is the root object, and each variant item is in ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["VariantizedProducts[]"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Use this tool"]}," when you need to work with the full structure of a variant cluster — for example to audit which SKUs belong to a variant, or to check variant-level content."]},{"$$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":["variant_ids"]}," — lookup by Variant (cluster) IDs."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["variant_codes"]}," — lookup by Variant codes."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["include_variant_group"]}," — include the variant group definition."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["include_product_relations"]}," — include related products on each variant item."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["include_content"]}," — include flags, parametrics, and files on each variant item."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["top"]}," / ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["skip"]}," — pagination. Default 50, max 200."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Output"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Variant cluster records with their individual variant items (products and SKUs), optionally with content and relations."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"preview-product"},"children":["Preview Product"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_product_preview_product"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Returns the storefront view of a product — what a customer or the storefront would see, including resolved prices, on-hand status, and applied business rules, via the ProductApi."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Use this tool"]}," to verify what a product looks like in a specific context (sales area, price list, currency, customer), or to troubleshoot a product display issue from the customer perspective. Because the result is application-specific, you can also pass a different ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["applicationId"]}," to compare how the same product renders on two different storefronts — for example the Swedish application versus the Norwegian one."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For raw diagnostic data, use ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_product_query_productskus"]}," instead."]},{"$$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"]}," — product PartNo to preview."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["status_seed"]}," — ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"1\""]}," = active only (default), ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"3\""]}," = active + inactive."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["culture_code"]}," — language/locale, for example ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"en-GB\""]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["sales_area_id"]}," — sales area context."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["pricelist_seed"]}," — comma-separated price list IDs."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["store_seed"]}," — comma-separated store IDs."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["currency_id"]}," — currency for price display."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["customer_id"]}," — customer ID for customer-specific pricing."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["company_id"]}," — company ID for B2B pricing."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Output"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The full ProductApi product object with prices, on-hand status, variants, files, categories, and applied business rules."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"search-products"},"children":["Search Products"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_product_search_products"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Searches and lists products via the ProductApi — the storefront representation with prices, on-hand, and applied business rules."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Use this tool"]}," for text search, category-based listing, flag filtering, or manufacturer filtering — returning the customer-facing product view. Supports pagination. You can also pass a different ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["applicationId"]}," to compare how the same search or category listing renders on two different storefronts."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For raw/diagnostic reads without business logic, use ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_product_query_productskus"]}," instead."]},{"$$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"]}," — batch lookup by PartNos (alternative to search)."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["search_string"]}," — free-text product search."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["category_seed"]}," — comma-separated category IDs."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["manufacturer_seed"]}," — comma-separated manufacturer IDs."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["flag_seed"]}," — comma-separated flag IDs."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["status_seed"]}," — comma-separated status IDs. Default ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"1\""]}," (active only)."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["sort"]}," — sort expression, for example ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"Name Asc\""]}," or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"Price Desc\""]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["page_size"]}," / ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["page"]}," — pagination. Default 20 results per page, max 100."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["culture_code"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["sales_area_id"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["pricelist_seed"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["store_seed"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["currency_id"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["customer_id"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["company_id"]}," — context for prices and availability."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Output"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A paginated list of ProductApi product objects with a total count and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["hasMore"]}," flag."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"diagnostic-tools"},"children":["Diagnostic tools"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"check-product-issues"},"children":["Check Product Issues"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_product_check_product_issues"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Fast diagnostic check for common product data problems. Checks up to 50 SKUs in a single call."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Use this tool"]}," when preparing products for publication, after an import to verify data quality, or when investigating why a product is displaying incorrectly."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Checks performed:"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Issues (likely broken): inactive status, PartNo containing spaces, ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["IsBuyable = false"]},", product name with leading/trailing whitespace, missing primary category, multiple primary categories, product related to itself, product listed as its own structure item."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Warnings (worth reviewing): PartNo containing risky characters, missing ManufacturerPartNo, missing GrossWeight, ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["IsRecommendedSalesQtyFixed = true"]},", no flags assigned."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For bundle/package structure validation, use ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_product_check_bundle_integrity"]}," instead."]},{"$$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"]}," — list of PartNos to check. Maximum 50."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Output"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A summary with total checked, issues found, and warnings found — plus per-SKU results with issues, warnings, and passed checks listed."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"img","attributes":{"src":"/assets/norce-product-check-product-issues-example.5ef0b588cd328ecf6bea506d2ad17967d99442e608b0abf3ab23ae032ea40de9.fe4eaf73.png","alt":"Example output from Check Product Issues showing per-SKU results"},"children":[]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"check-bundle-integrity"},"children":["Check Bundle Integrity"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_product_check_bundle_integrity"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Deep integrity check for bundle and package (structure) products. Validates the parent and all child SKUs together."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Use this tool"]}," before publishing a bundle product or after updating bundle structure items, to confirm all child products exist, are active, and that no circular references have been created."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Note: this tool can be slow for large bundles — it performs multiple Query API calls. Use ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_product_check_product_issues"]}," for general product checks."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Checks performed:"]}," Parent product is active and valid; all child PartNos exist; no child products are inactive; no circular relations; minimum of 2 children (warns if fewer)."]},{"$$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"]}," — PartNo of the bundle or package product."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["relation_type_code"]}," — only check relations of this type (default: all relation types)."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Output"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Check status (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ok"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["issues"]},", or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["warnings"]},"), with the parent product, all child records, and detailed issues, warnings, and passed checks."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"img","attributes":{"src":"/assets/norce-product-check-bundle-integrity-example.c47b369407f0c7f2a6321b176d23d56dc69c48517dfb358858325fb586025a7c.fe4eaf73.png","alt":"Example output from Check Bundle Integrity showing parent and child product results"},"children":[]}]},{"$$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":"importing-a-product-catalogue"},"children":["Importing a product catalogue"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A typical catalogue import uses the Product MCP for product data and content, with optional parallel imports from other MCP servers:"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Use ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_product_upsert_products"]}," to create SKUs — providing manufacturer references, part numbers, status, type, and category assignment."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Poll ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_product_get_import_job_status"]}," until the product import completes."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Use ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_product_update_content"]}," to enrich the created SKUs with content — descriptions, images, parametric values, and flags."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Poll ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_product_get_import_job_status"]}," until the content import completes."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Optionally, run imports in parallel using the other Backend MCP Servers: import retail prices via the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Pricing MCP"]},", update stock levels via the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Inventory MCP"]},", and register supplier cost prices and product mappings via the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Supplier MCP"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Spot-check with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_product_check_product_issues"]}," on a sample of the imported PartNos."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"enriching-product-content"},"children":["Enriching product content"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Use ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_product_lookup_products"]}," to find PartNos — filter by category, manufacturer, or flag."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Use ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_product_query_productskus"]}," with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["include_content = true"]}," to see the current parametric values and flags."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Use ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_product_update_content"]}," with the enriched content."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Poll ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_product_get_import_job_status"]}," until complete."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Use ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_product_preview_product"]}," to verify the result in the storefront view."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"checking-products-before-publication"},"children":["Checking products before publication"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Use ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_product_lookup_products"]}," with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["category_ids"]}," to find all SKUs in a category."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Run ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_product_check_product_issues"]}," on the PartNos (in batches of 50)."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Fix any issues using ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_product_upsert_products"]}," (for status and core fields) or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_product_update_content"]}," (for names, categories, and flags)."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Run ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_product_check_product_issues"]}," again to confirm all issues are resolved."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"auditing-translation-coverage"},"children":["Auditing translation coverage"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Use ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_product_list_missing_translations"]}," with the target culture code to find all untranslated metadata entities."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["For each entity type (categories, parametrics, flags), call the relevant upsert tool to add the missing culture entry."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Run ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_product_list_missing_translations"]}," again to confirm coverage is complete."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"setting-up-a-new-variant-group"},"children":["Setting up a new variant group"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Use ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_product_list_parametrics"]}," to find the parametric IDs that will define the variant axes (for example Size and Color)."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Call ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_product_upsert_variant_group"]}," with the parametric IDs in ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["variant_types"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Note the variant group code — you will use this in ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_product_update_content"]}," when assigning products to the group."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"troubleshooting-a-bundle-product"},"children":["Troubleshooting a bundle product"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Call ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_product_check_bundle_integrity"]}," with the bundle's PartNo."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["If any child PartNos are missing or inactive, use ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_product_query_productskus"]}," on those PartNos to confirm their status."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Fix inactive children with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_product_upsert_products"]}," (update status) or correct the structure with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_product_import_structure_items"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Run ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["norce_product_check_bundle_integrity"]}," again to confirm."]}]}]},"headings":[{"value":"Norce Product MCP — Tool Reference","id":"norce-product-mcp--tool-reference","depth":1},{"value":"Key concepts","id":"key-concepts","depth":2},{"value":"Two views of product data","id":"two-views-of-product-data","depth":3},{"value":"Import split: master data vs content","id":"import-split-master-data-vs-content","depth":3},{"value":"Multi-variant grouping — the most common import failure","id":"multi-variant-grouping--the-most-common-import-failure","depth":3},{"value":"Metadata tools","id":"metadata-tools","depth":2},{"value":"List Product Categories","id":"list-product-categories","depth":3},{"value":"Get Category","id":"get-category","depth":3},{"value":"List Parametric Groups","id":"list-parametric-groups","depth":3},{"value":"List Parametrics","id":"list-parametrics","depth":3},{"value":"Get Parametric","id":"get-parametric","depth":3},{"value":"List Product Flags","id":"list-product-flags","depth":3},{"value":"List Manufacturers","id":"list-manufacturers","depth":3},{"value":"List File Types","id":"list-file-types","depth":3},{"value":"List Relation Types","id":"list-relation-types","depth":3},{"value":"List Variant Groups","id":"list-variant-groups","depth":3},{"value":"List Missing Translations","id":"list-missing-translations","depth":3},{"value":"Create or Update Category","id":"create-or-update-category","depth":3},{"value":"Assign Parametrics to Category","id":"assign-parametrics-to-category","depth":3},{"value":"Create or Update Parametric Group","id":"create-or-update-parametric-group","depth":3},{"value":"Create Parametric","id":"create-parametric","depth":3},{"value":"Update Parametric","id":"update-parametric","depth":3},{"value":"Create or Update Flag Group","id":"create-or-update-flag-group","depth":3},{"value":"Create or Update Flag","id":"create-or-update-flag","depth":3},{"value":"Create or Update Manufacturer","id":"create-or-update-manufacturer","depth":3},{"value":"Create, Update, or Delete File Type","id":"create-update-or-delete-file-type","depth":3},{"value":"Create or Update Relation Type","id":"create-or-update-relation-type","depth":3},{"value":"Create or Update Variant Group","id":"create-or-update-variant-group","depth":3},{"value":"Product import tools","id":"product-import-tools","depth":2},{"value":"Upsert Products","id":"upsert-products","depth":3},{"value":"Update Product Content","id":"update-product-content","depth":3},{"value":"Import Product Relations","id":"import-product-relations","depth":3},{"value":"Import Structure Items","id":"import-structure-items","depth":3},{"value":"Get Import Job Status","id":"get-import-job-status","depth":3},{"value":"Product query tools","id":"product-query-tools","depth":2},{"value":"Lookup Products","id":"lookup-products","depth":3},{"value":"Parametric filter","id":"parametric-filter","depth":4},{"value":"Filter","id":"filter","depth":4},{"value":"Query Product SKUs","id":"query-product-skus","depth":3},{"value":"Query Variantized Products","id":"query-variantized-products","depth":3},{"value":"Preview Product","id":"preview-product","depth":3},{"value":"Search Products","id":"search-products","depth":3},{"value":"Diagnostic tools","id":"diagnostic-tools","depth":2},{"value":"Check Product Issues","id":"check-product-issues","depth":3},{"value":"Check Bundle Integrity","id":"check-bundle-integrity","depth":3},{"value":"Typical workflows","id":"typical-workflows","depth":2},{"value":"Importing a product catalogue","id":"importing-a-product-catalogue","depth":3},{"value":"Enriching product content","id":"enriching-product-content","depth":3},{"value":"Checking products before publication","id":"checking-products-before-publication","depth":3},{"value":"Auditing translation coverage","id":"auditing-translation-coverage","depth":3},{"value":"Setting up a new variant group","id":"setting-up-a-new-variant-group","depth":3},{"value":"Troubleshooting a bundle product","id":"troubleshooting-a-bundle-product","depth":3}],"frontmatter":{"seo":{"title":"AI - Norce Product MCP Tool Reference","description":"Reference for all tools exposed by the Norce Product MCP Server — categories, parametrics, flags, manufacturers, variant groups, product imports, content updates, and diagnostic checks.","keywords":"MCP, model context protocol, product MCP, catalogue, parametrics, flags, variant, import, tool reference"},"metadata":{"redocly_category":"Development","owner":"MB"}},"lastModified":"2026-09-16T06:55:22.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/ai/norce-product-mcp-tool-reference","userData":{"isAuthenticated":false,"teams":["anonymous"]}}