Appearance
Entity Relationship Diagram
High-level entity relationships in the inRiver e-commerce export format.
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
Entity → InboundLink (1:many)
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
Entity → OutboundLink (1:many)
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
Related Documentation
- Assumptions - Detailed assumptions about entity relationships
- Product Schema - Complete Product/Item structure
- ChannelNode Schema - Category hierarchy details