inRiver model design considerations
The InRiver model tool allows a wide variety of design options. Some of these options are restricted or discouraged by InRiver standard best practices (as explained in InRiver wiki). Also, some of the features supported by InRiver V are not compatible with or not supported by Litium Studio. However, a project may choose to go beyond standard InRiver recommendations and might model features that are not currently supported by the Litium Studio InRiver Connector, in which case the connector need to be changed by the implementation project.
Architectural Differences
These are limitations arising due to architectural differences between InRiver V and Litium Studio. They are hard to work-around. Therefore it is recommended to avoid these during the modelling phase of InRiver model.
- Use InRiver recommended best practice "Product-Item-Resource" model.This is equivalent in Litium Studio to Variant Group - Variant - Media Archive Files. This model makes it mandatory that InRiver Products are always Variant Groups in Litium Studio, and InRiver Items are always Articles in Litium Studio.
- In Litium Studio, same variant cannot be part of two variant groups. In InRiver, avoid connecting the same Item to multiple Products via Product-Item links.
- InRiver Channel entity and properties are not transfered to Litium Studio. The Litium Studio equivalent of InRiver channel is the installation instance.
- The first level of InRiver ChannelNodes directly under an InRiver Channel are transfered as Litium Studio Assortments.
- One InRiver Model: Only one InRiver instance per Litium Studio instance (However, there can be multiple Litium Studio Instances for a single InRiver instance). If two InRiver models (from two InRiver servers) are connected to same Litium Studio instance, there will be entity Id conflicts.
- Multi-valued CVLs: Litium Studio does not have a equivalent representation of multi-valued CVLs. Consider using multiple single-valued CVL fields instead.
- inRiver does not allow spaces in the CVL key, whilst Litium Studio allow it. If you already have a Litium Studio solution with spaces in multivalue/Default value keys, you need to rename them first.
- Sort order of Litium Studio Assortments: Sort order of Litium Studio Assortments (immediate children ChannelNodes of InRiver Channel) cannot be changed. It will always be alphabetical order.
- ArticleNumber should not be changed, once a Litium Studio article is created. The ECommerce module creates orders which has the article number and changing the article number of a article may result in incorrect ECommerce order data. Therefore, once created, article number should not change. Consider using a Mandatory, Unique, ReadOnly (Integration code has to set it, not the Rich Client user), String property for the article number.
- when "inRiver connect" service is not running: The studio connector will not receive events from inRiver, which means important updates will be missed. In particular, if an entity is removed from the inRiver channel, that change will not be reflected in Litium Studio and the corresponding Litium Studio entities (product groups and products) will continue to be published in the public website.
Default entity and link types
This section explains the InRiver EntityType Ids and Linktype Ids used by the connector and describes their default behaviour when importing to Litium Studio.
When modelling your InRiver solution, it is better to use these Ids whenever possible and stick to the behaviour as explained in this article. All names are standard best practice recomendations of InRiver Product-Item-Resource model.
Important! : Though Litium Studio InRiver connector does not have hard-coded names, InRiver RichClient and other tools and components may have specific naming requirements. Therefore, it is highly recomended to use the names proposed by InRiver wiki documentation for common entities.
Entity Type Ids
- Channel
- ChannelNode
- Product
- Item
- Resource
- Specification
Link Type Ids
- ChannelChannelNode
- ChannelNodeChannelNode
- ChannelNodeItem
- ChannelNodeProduct
- ChannelNodeResource
- ItemProduct
- ItemResource
- ItemSpecification
- ProductItem
- ProductProduct
- ProductResource
- SpecificationResource
Behaviour of default entity types when importing to Litium Studio
- Channel: Represents the Litium Studio instance. There can be only one channel per connector instance. Each seperate Litium Studio solution need a seperate channel, and a Litium Studio InRiver connector instance.
- ChannelNode: Channel nodes directly under a Channel become Litium Studio Assortments. All other nodes become Litium Studio Product Groups.
- Product: Litium Studio variant group.
- Item: Litium Studio variant. (An article connected to a variant group.)
- Resource: A resource in Litium Studio Media Archive.
- Specification: No equivalent entity in Litium Studio, imported as property fields to the connected entity.
Behaviour of default link types when importing to Litium Studio
- ChannelChannelNode: The target ChannelNode becomes a Litium Studio Assortment.
- ChannelNodeChannelNode: A Litium Studio Product Group (parent) and a Litium Studio Product Group (child)
- ChannelNodeItem: A Litium Studio Product Group(InRiver ChannelNode) and a Litium Studio Article(InRiver Item) published as a product under that product group.
- ChannelNodeProduct: A Litium Studio Product Group(InRiver ChannelNode) and a Litium Studio VariantGroup(InRiver Product) published as a product under that product group.
- ChannelNodeResource: A Litium Studio Media Archive resource (InRiver Resource entity File field) linked to the Litium Studio Product Group.
- ItemProduct: Directional relationship between the Litium Studio Product (InRiver Item should have a ChannelNode parent and inRiver product should also have a different ChannelNode parent).
- ItemResource: A Litium Studio Media Archive resource (InRiver Resource entity File field) linked to the Litium Studio article (variant).
- ItemSpecification: Specifications fields become Litium Studio variant group fields in article template.
- ProductItem: Litium Studio Variant Group (InRiver product) and Litium Studio Variant (InRiver Item)
- ProductProduct: A Bi-directional relationship between two Litium Studio Products.
- ProductResource: A Litium Studio Media Archive resource (InRiver Resource entity File field) linked to the Litium Studio variant group.
- SpecificationResource: Not implemented.
- ProductSpecification: Not implemented.
Behaviour when an entity is removed from inRiver channel
- Channel Node: Product groups, products and assortments in Litium Studio corresponding to the channel node is removed. Articles will be delinked from Variant Groups. Variant Groups, Articles and Resources are not deleted, but will remain in unpublished state.
- Product: The corresponding product in Litium Studio is deleted. The variant group is not deleted. If inRiver product is added to the multiple inRiver channel nodes, its only the product that correspond to the deleted link that will be deleted.
- Item: The corresponding Litium Studio article is removed from the variant group. The article itself is not deleted.
- Resource: The corresponding Litium Studio image/resource is removed from the entity property. The resource/image is not deleted from the Litium Studio Media Archive.
Features for future releases
Following features are not avialble in the current version but they may be available in a future version. In the meantime the connector can be modified by the implementation project to support these features by extending/modifying the source code.
- Multiple article templates
- Multiple product group templates.
- Multiple outbound specifications.
- Specifications for resources.
- Specification inheritance.
- Product Sets.
- Article structure.
- Deleting articles/resource files when deleted in inRiver.