Skip to content

Entity Relationship Diagram

High-level entity relationships in the inRiver e-commerce export format.

Entity Relationship Diagram

Tip: Click the diagram to open in a new window for full zoom control.

Note:

  • Nested arrays (Items, Resources, InboundLinks, OutboundLinks) are embedded within their parent entity JSON files, not separate files
  • All entities use standard SQL table styling
  • Relationships with blue lines indicate nested containment (Items, Resources arrays)

Relationship Details

Channel → ChannelNode (1:many)

Join Key: Channel.EntityId → ChannelNode (assumed relationship)
Note: No sample Channel files provided; relationship inferred from AttributeFile.

ChannelNode → ChannelNode (1:many)

Join Mechanism: OutboundLinks array
Link Type: ChannelNodeChannelNodes
Join Key: Parent ChannelNode.OutboundLinks[].TargetEntityId → Child ChannelNode.EntityId
Purpose: Build hierarchical category structure (parent → children)

ChannelNode ↔ Product (many:many)

Join Mechanism: Bidirectional link arrays
Link Type: ChannelNodeProduct
Direction: Both directions are maintained

  • ChannelNode.OutboundLinks[] → Product (ChannelNode lists all its products)
  • Product.InboundLinks[] → ChannelNode (Product lists all its categories)
    Purpose: Assign products to categories
    Scalability Note: ChannelNode OutboundLinks can contain many products (potentially thousands per category)

Product → Item (1:many)

Join Mechanism: Nested array (containment)
Structure: Product.Items[] array contains Item entities
Join Key: Implicit via nesting (no explicit foreign key)
Purpose: Product can have multiple SKUs/variants

Join Mechanism: Nested array (not a separate file)
Structure: Entity.InboundLinks[] array
Properties:

  • LinkTypeId - Type of relationship (e.g., "ChannelNodeProduct")
  • SourceEntityTypeId - Type of source entity
  • SourceEntityId - ID of source entity linking to this entity
    Purpose: Track which entities link to this entity
    Note: InboundLinks are embedded within the entity JSON, not separate files

Join Mechanism: Nested array (not a separate file)
Structure: Entity.OutboundLinks[] array
Properties:

  • LinkTypeId - Type of relationship (e.g., "ChannelNodeChannelNodes")
  • TargetEntityTypeId - Type of target entity
  • TargetEntityId - ID of target entity this entity links to
    Purpose: Track which entities this entity links to
    Note: OutboundLinks are embedded within the entity JSON, not separate files

Product → Resource (1:many)

Join Mechanism: Nested array (containment)
Structure: Product.Resources[] array at Product level
Join Key: Implicit via nesting (no explicit foreign key)
Purpose: Product-level media (images, documents)

Item → Resource (1:many)

Join Mechanism: Nested array (containment)
Structure: Item.Resources[] array nested within Item
Join Key: Implicit via nesting (no explicit foreign key)
Purpose: Item-specific media (images, documents)

Notes

  • LocaleString = Multi-language object (e.g., {"en": "...", "es": "...", "fr-CA": "..."})
  • Resource Types: normal (image), cl (cutsheet), subs (submittal), ii (installation), msdss (MSDS), war (warranty)
  • Business Units: E-commerce exports are per-BU; no BusinessUnitOverride entities needed