Skip navigation links

Package com.neurosys.products.domain

Product Association Types

See: Description

Package com.neurosys.products.domain Description

Product Association Types

A lot of flexibility in any catalog management system lies in the ability of how easily one can define associations of various product types, modify and customize them. Tou can also refer to the user guide to get a high level understanding of the same before getting into the technical details.
The following order defines the different types of associations in descending order of Strength of association.
  1. Default Category or HierarchialDomainObject.getParentId()

    This is the strongest form of association. A Single parent category (default category) for a Product. Based on the application logic a product can inherit aspects from its Default Parent. For example: In E-Commerce one may define a Tax field and the tax is applicable for the Category and all its children; unless overidden by any child down the hierarchy.
    Impacts: Catalog hierarchy, Inheritance of Data/Properties from parent to Child, Default Policies and rules set on a Parent Category, Indexing taxanomy for showing Search results for a Category

  2. Related products - Model Code or Product.getModelCode()

    The same product may exist in multiple sizes or colours. Products like these can share the same Model Code. There is a very strong association between products of the same Model Code.
    One may consider this as a form of "Related Products" however this is a very common and specific case of "Related products" that requires special attention.
    Impacts: Display of a product usually. Example A product available in different sizes or colours. They will share the same Product.getModelCode()

  3. Alternate Parent or ProductAlias

    Refer to ProductAlias
    Impacts: Indexing taxanomy for showing Search results for a Category

  4. Cross Related products or Product.getRelatedGroups()

    A product maybe related to other products. like a Coushion Cover and its filler, or a Dinner Set (as a Product) and various other products that make up the Set like plates, cups etc.
    This is realized in e-commerce module.
    Impacts: Display of a product usually, one may optionally use to for Shipping and Promotion policies. Like for every Dinner set get an extra Cup free etc.

  5. Cross Related products or Product.getRelatedGroups() + com.neurosys.products.domain.Product#ATTRIB_COLLECTION_TYPE_NAME Collection Type / Campaigns

    Collection allow more fine grain control over products in terms of manually sequencing them, allowing shared characteristics like special price for a select customer audience (like a buyer), keeping a collection private and secure and any custom action one may want on a group of products as a collection.

    For display purposes we may choose to show Products part of a Collection. However we may not want to invest time defining a permanent hierarchy or even care about that. More so need the ability to Sequence and control attributes around the collection in addition to the products that combine to form the collection.

    A Collection is a Product with additional special attributes. It shares the same data model as Product. The products in the collection use the field Product.getRelatedGroups() in the Product data model. The EntityAttribute.getName() can be a name for the collection attribute or a composite key in <Collection Attrib Name>-<Product Code> form, that can represent the collection and a product within the collection. The product with the defined com.neurosys.products.domain.Product#ATTRIB_COLLECTION_TYPE_NAME is the Collection and the products in sequence in Product.getRelatedGroups() are the ones comprising of the collection.
    Impacts: Display of a Catalog or Collection usually, Indexing taxanomy for showing Search results for a Collection

  6. Product Variations or com.neurosys.products.domain.Product#ATTRIB_VARIATION_NAME

    Some products data is such that they are essentially the same product (common name, sku, codes, color, size, price) however one of these attributes may vary. the variation could be very subtle
    Example: A Sofa sold with different covers. That may change its appearance but the store maintains data for it under 1 SKU.
    Impacts: Display of a product usually

Strength of Association : is characterized by need for Entity relationship, Logical Relation, Openness to interpret in application specific situation (More open the weaker)
Skip navigation links

Copyright © 2018. All rights reserved.