ID Property Reference

Complete property reference for product identifier fields - Id, ProductId, SkuId, ParentId, and VariantParentId

This page provides a detailed reference for each identifier property in the Omnium product model.


Property Reference Summary

PropertyTypeRequiredDescription
IdstringYesUnique document identifier
ProductIdstringYesLogical product grouping identifier
SkuIdstringConditionalStock-keeping unit identifier
ParentIdstringNoParent/family grouping identifier
VariantParentIdstringConditionalReference to parent product (variants only)

Id

The Id is the primary unique identifier for every product and variant document in Omnium.

Characteristics

AspectValue
RequiredYes - always required
UniqueMust be unique across all products
AutomaticNo - must be provided
MutableNo - changing Id creates a new document

Behavior

  • Products with the same Id will be overwritten on import
  • By convention, includes a language suffix (e.g., _en, _no)
  • Used as the document key in Elasticsearch

Examples

// Product Id
"id": "winter-jacket-blue_en"
 
// Variant Id
"id": "winter-jacket-blue_m"

Usage by Entity Type

EntityIn UseRequiredNotes
Product with variantsYesYesInclude language suffix
Product without variantsYesYesInclude language suffix
VariantYesYesOften uses SKU code

Import behavior: If you import a product with an existing Id, the existing product is completely replaced. To update specific fields, use the update/patch API instead.


ProductId

The ProductId groups language versions of the same logical product together.

Characteristics

AspectValue
RequiredYes - required on products
UniqueNo - shared across language versions
AutomaticFalls back to Id if not provided
MutableYes - but affects language grouping

Behavior

  • Products with the same ProductId are treated as translations of each other
  • Used for property inheritance between language versions
  • Displayed as grouped items in the Omnium UI

Examples

// English version
{
  "id": "jacket_en",
  "productId": "jacket"
}
 
// Norwegian version
{
  "id": "jacket_no",
  "productId": "jacket"
}

Usage by Entity Type

EntityIn UseRequiredNotes
Product with variantsYesYesShared across languages
Product without variantsYesYesShared across languages
VariantYesNoRecommended to match parent product

For variants, set ProductId to the same value as the parent product's ProductId. This maintains consistency and enables proper grouping.


SkuId

The SkuId identifies the purchasable stock-keeping unit. This is the identifier used in inventory, orders, and integrations with external systems.

Characteristics

AspectValue
RequiredConditional - depends on product structure
UniqueShould be unique per purchasable item
AutomaticNo for single-SKU products, Yes for variants
MutableYes - but affects order/inventory references

Behavior

  • Used for inventory tracking and order line items
  • Typically matches your ERP or POS system identifiers
  • For products with variants: SkuId is only on variants
  • For products without variants: SkuId is on the product itself

Usage by Entity Type

EntityIn UseRequiredNotes
Product with variantsNoNoProduct is not purchasable
Product without variantsYesYesProduct is the SKU
VariantYesYesVariant is the SKU

Examples

Single-SKU Product:

{
  "id": "simple-product_en",
  "productId": "simple-product",
  "skuId": "SKU-12345",
  "isSku": true
}

Product with Variants:

{
  "id": "shirt_en",
  "productId": "shirt",
  "skuId": null,
  "isSku": false,
  "variants": [
    {
      "id": "shirt_s",
      "skuId": "SHIRT-S",
      "isSku": true
    },
    {
      "id": "shirt_m",
      "skuId": "SHIRT-M",
      "isSku": true
    }
  ]
}

The IsSku boolean property indicates whether the item is a purchasable SKU. Set this to true for single-SKU products and variants, false for products that only have variants.


ParentId

The ParentId groups sibling products into a product family or series.

Characteristics

AspectValue
RequiredNo - optional
UniqueNo - shared across siblings
AutomaticNo - must be provided
MutableYes

Behavior

  • Products sharing the same ParentId are displayed as siblings in the UI
  • The referenced parent does not need to exist as a product in Omnium
  • Commonly used for color variations where each color has size variants
  • Enables property inheritance between sibling products

Use Cases

  1. Fashion: T-shirts in different colors (each color is a sibling with size variants)
  2. Electronics: Phone models with different storage capacities
  3. Furniture: Sofa series in different fabrics

Examples

// Blue jacket - sibling 1
{
  "id": "jacket-blue_en",
  "productId": "jacket-blue",
  "parentId": "jacket-collection"
}
 
// Red jacket - sibling 2
{
  "id": "jacket-red_en",
  "productId": "jacket-red",
  "parentId": "jacket-collection"
}
 
// The "jacket-collection" doesn't need to exist as a product

Usage by Entity Type

EntityIn UseRequiredNotes
Product with variantsYesNoGroups siblings
Product without variantsYesNoGroups siblings
VariantYesNoTypically same as parent product

Set the ParentId on variants to the same value as their parent product. This maintains hierarchy consistency for inheritance and grouping features.


VariantParentId

The VariantParentId links a variant to its parent product. This is essential for Excel imports where variants may be imported separately from their products.

Characteristics

AspectValue
RequiredConditional - required for variants in Excel import
UniqueNo - variants share the same parent
AutomaticYes - when variants are saved with product
MutableYes - but breaks variant association

Behavior

  • Points to the parent product's Id (not ProductId)
  • Automatically set when saving a product with inline variants via API
  • Manually required when importing variants via Excel separately

Usage by Entity Type

EntityIn UseRequiredNotes
Product with variantsNoNoNot applicable
Product without variantsNoNoNot applicable
VariantYesConditionalRequired for Excel import

Examples

API - Inline Variants (auto-set):

{
  "id": "shirt_en",
  "productId": "shirt",
  "variants": [
    {
      "id": "shirt_s",
      "skuId": "SHIRT-S"
      // VariantParentId is automatically set to "shirt_en"
    }
  ]
}

Excel Import - Separate Variants (manual):

IdProductIdSkuIdVariantParentId
shirt_sshirtSHIRT-Sshirt_en
shirt_mshirtSHIRT-Mshirt_en

Excel Import: When importing variants separately from products, VariantParentId is required to associate the variant with its parent product. The parent product must already exist in Omnium.


IsSku Property

While not an identifier itself, the IsSku boolean property is closely related to the identification system.

ValueMeaning
trueThis item is a purchasable stock-keeping unit
falseThis item is a container for variants (not directly purchasable)

Setting IsSku

ScenarioIsSku Value
Single-SKU producttrue
Product with variantsfalse
Varianttrue
// Single-SKU product
{
  "id": "book_en",
  "skuId": "ISBN-123",
  "isSku": true,
  "variants": null
}
 
// Product with variants
{
  "id": "tshirt_en",
  "skuId": null,
  "isSku": false,
  "variants": [
    { "id": "tshirt_s", "skuId": "TS-S", "isSku": true },
    { "id": "tshirt_m", "skuId": "TS-M", "isSku": true }
  ]
}

Quick Reference Table

Products WITH Variants

PropertyProductVariant
IdRequired, unique with _lang suffixRequired, unique
ProductIdRequired, shared across languagesSame as parent
SkuIdNot usedRequired, unique
ParentIdOptional, for siblingsSame as parent
VariantParentIdNot usedPoints to product Id
IsSkufalsetrue

Products WITHOUT Variants

PropertyProduct
IdRequired, unique with _lang suffix
ProductIdRequired, shared across languages
SkuIdRequired, typically same as ProductId
ParentIdOptional, for siblings
VariantParentIdNot used
IsSkutrue

See Also