How-To Guide WPC Data Model Version 0.2 Noman Mohammad WebSphere Product Center Solution Management Services TABLE OF CONTENT OVERVIEW ................................................................................................................................... 3 PRODUCT DEFINITION ............................................................................................................. 4 WHAT IS A ‘PRODUCT’? .................................................................................................................... 4 WHAT SHOULD BE MODELED IN WPC? ............................................................................................ 4 FACTORS TO CONSIDER DURING DATA MODELING ......................................................................... 7 CORE .............................................................................................................................................. 9 ITEM IDENTIFIERS ............................................................................................................................. 9 ITEM TYPES .................................................................................................................................... 12 COMMON ATTRIBUTES .................................................................................................................... 12 ITEM STATUS .................................................................................................................................. 14 PRICING AND COST ......................................................................................................................... 16 IMAGE LINKS .................................................................................................................................. 18 EXTENSION ................................................................................................................................ 19 ITEM-TYPE ATTRIBUTES................................................................................................................. 19 ITEM-CATEGORY ATTRIBUTES ....................................................................................................... 20 ITEM-CHARACTERISTIC ATTRIBUTES ............................................................................................. 21 RELATIONSHIPS ....................................................................................................................... 22 MODELING RELATIONSHIPS IN WPC.............................................................................................. 22 ITEM TO ITEM.................................................................................................................................. 23 ITEM TO OTHER ENTITIES ................................................................................................................ 26 LOOKUP VALUES (LOV) ......................................................................................................... 30 OTHER.......................................................................................................................................... 32 EFFECTIVE DATES .......................................................................................................................... 32 SEASONAL ITEM ASSORTMENTS..................................................................................................... 32 DATA MODEL VALIDATIONS ............................................................................................... 33 HIERARCHY MODELING........................................................................................................ 33 DESIGNING AND DEPLOYING THE DATA MODEL......................................................... 33 APPENDIX ................................................................................................................................... 34 LINKS TO OTHER RESOURCES ........................................................................................................ 34 Document Control The change history for this document is listed below. Version 0.1 0.2 Date 12/7/2006 12/21/2006 Change Description Initial version by Noman Mohammad Incorporated feedback from Review Panel This document is an asset of the IBM WPC Solution Management Team. Please do not disseminate or make document changes without permission of the Solution Management team. ([email protected]) WebSphere Product Center Knowledgebase – Data Model How-To Guide 2 Overview Given the flexibility of WebSphere Product Center (WPC), the data modeling aspect is always a challenge. There can be many ways of achieving the same end result. However, the solution delivery timelines as well as product performance can vary drastically if the data model is not designed correctly. Hence, good data modeling is the key to the success of the implementation both in terms of meeting the client’s needs as well as laying a solid foundation for other WPC components to be built upon. This document tries to list out some of the common design questions that we come across during the data modeling exercise, and recommends an approach which has proven to work well in customer engagements. This is a working document and will be updated as we continue to learn more from the field. WebSphere Product Center Knowledgebase – Data Model How-To Guide 3 Product Definition What is a ‘Product’? This is perhaps the single most fundamental question that one should try and get answered during the early stages of the engagement. Depending on the industry vertical and the customer requirements the product can be defined in different ways. ‘Product’ for a Consumer Electronics retailer would include laptops, MP3 players etc. Whereas for a Clothing retailer the ‘Product’ would comprise shirts, pants, caps etc. of varying color and sizes. Moreover if you go into another vertical such as Automotive, the product may be defined as the Part itself e.g. xyz radiator, or from the perspective of the Part application e.g. 1994 Nissan Altima radiator. WPC provides the capability to model all such variants in product definitions leveraging the same platform. Hence, the product modeled within WPC is usually more closer to the way the business understands it, as opposed to being locked down into a rigid model provided by a package solution. However, this flexibility may lead towards a slippery path and one should be clear on what should and should not be modeled within WPC. What should be modeled in WPC? To determine what components should be modeled in WPC, it is important to have a good understanding of the PIM Domain. One should understand the Do’s and Dont’s otherwise theoretically everything can be modeled in WPC given the flexible nature of the platform. The following sections outline the different components encountered in a typical PIM engagement. Product Attributes These are the set of attributes that define a product. These are usually grouped into a set of core and extension attributes. Core attributes are common across all of the enterprise products e.g. UPC. Extension attributes are specific to certain product types or category e.g. screen size. WPC can also support relationship data e.g. cross-sell, up-sell, etc. WPC typically serves as a system of record for referential attributes. Attributes that are transactional or volatile in nature are best handled outside of PIM by the appropriate consuming applications e.g. current price being handled by a pricing engine. Also attributes whose values are derived by business logic in external applications should not be modeled in PIM. Such data may be kept in PIM as read only but then it necessitates an update mechanism to keep the data in sync and may also put unnecessary load and high availability requirements. Hence it is best to leave these types of transactional or volatile types of attributes outside of PIM. The following are some common attribute sets that are encountered in a typical engagement, and are classified as either Core or Extension data, Relationship data, or Not Applicable (N/A) to a WPC application. WebSphere Product Center Knowledgebase – Data Model How-To Guide 4 Function Product Identifiers System of Record PIM Attribute Group Core Item Types PIM Core Common attributes PIM Core Item Status PIM Core Pricing and Cost Pricing Engine N/A Image Links PIM Core Item-Type Attributes PIM Extension Item- Category Specific Attributes PIM Extension Product Bundles PIM Relationship Product Variants PIM Relationship Static Cross-Sell & UpSell Dynamic Cross-Sell & Up-Sell PIM Relationship Personalization Engine/CMS N/A Comments Uniquely identifies a product e.g. UPC, GTIN, SKU. Logical grouping of items to share common traits regardless of where it gets categorized. Usually one or two attributes: item type, item sub-type. Description, Dimension UOM, etc Tracking an item’s lifecycle within PIM Less volatile data such as initial price and initial cost can be maintained in PIM Links to images. Actual images should be stored in an external image repository Attributes specific to a product type e.g. screen size. This is part of product definition. Should not be used for maintaining external attributes specific to upstream/downstream applications Attributes specific to a product based on the category it is classified in Part of product definition. Bundles usually modeled as separate products Variants such as size, color etc are part of product definition. The variant product may be modeled as a separate product than the base and linked together Products that are always sold together Data depends on user activity and business analytics WebSphere Product Center Knowledgebase – Data Model How-To Guide 5 Accessories PIM Relationship Substitute/Replacement PIM Relationship Packaging PIM Relationship Promotions Pricing/Promoti ons Engine PIM N/A Effective Dating / Seasonality Other Products that are always sold together The relationship is stored in PIM. Action is taken by Replenishment system based on inventory levels. Attributes around packaging such as pack size, case dimensions etc. Provides input to downstream systems such as Ordering/Fulfillment Volatile data. Owned by the Pricing/Promotions Engine In roadmap for future WPC release. Simple scenario such as Seasonal catalogs can be supported. Comprehensive framework for adding date effectivity to attributes such as pricing, description etc. for items in same catalog is not supported currently. Product Classifications Defines how the products are grouped together, whether serving a specific business purpose such as organizational structure or for ease of navigation. There can be multiple ways in which a Product can be categorized. Function Primary Product Classifications Secondary Product Classifications System of Record PIM Comments Core Product Classification PIM Sales Channel Hierarchy Sales Channel System Packaging Hierarchy PIM Only for enterprise-wide secondary classifications. Consuming application specific hierarchies should be outside of PIM In an enterprise-wide PIM solution, Sales channel dependent hierarchies such as Print Catalog and Online should be maintained outside preferably within their own system. There is an exception for cases in which WPC is sold as the PIM solution specific to the Sales channel e.g. PIM for eCommerce Part of item definition WebSphere Product Center Knowledgebase – Data Model How-To Guide 6 Foundation Data Foundation data encompasses any supporting entities and attribute values that are needed for defining a product e.g. list of suppliers, locations, product brands etc. Entity Vendors System of Record Financial system / CDI Customers Financial system / CDI Locations Images Merchandising/ERP system Imaging application Product Type / Sub Type PIM Packaging Types PIM Product specific attribute values PIM Comments Better positioned to model rich vendor data and its application Better positioned to model rich customer data and its application Embedded location-based functionality and mass updates Image generation, storage and types List of possible values to select from e.g. simple, complex, bundle etc List of possible values to select from e.g. Each, Case etc List of possible values for various product attributes such as unit of measures (in, pound etc) Factors to Consider during Data Modeling During data model design it is also important to take into consideration whether the approach will enforce any constraints on the native WPC functionality or result in poor performance of the platform as a whole. Usually we have seen it boiling down to the following key components: User Interface, Workflows, Search. User Interface WPC provides out-of-box item and hierarchy screens. The UI is auto-generated based on the metadata. This is a combination of WPC objects such as attribute collections, views etc along with an application of user roles and security. When a user clicks on a particular item or hierarchy for viewing, there is a lot that goes in the background to generate the screen. One would not want to replicate this kind of functionality. Hence, the goal during implementation is to leverage as much of the native UI as possible. Any customizations should be seen more as enablers to business processes such as for dashboard-like monitoring capability. To achieve this one should keep in mind how the data model is being designed. If we have items spread across two catalogs e.g. core data and detail item data, then that itself would warrant a custom UI for editing and another for viewing. Instead we could try and WebSphere Product Center Knowledgebase – Data Model How-To Guide 7 model it such that both are modeled as attribute groupings on the same item spec. The multi-edit feature should also be tested against the data model design. Based on the data modeling certain attributes may not be available for multi-edit and if those are important for the customer from a multi-edit perspective it may require rethinking the design or else one will have to create a custom UI. Therefore, to minimize User Interface customization, it is important to understand and validate that the data model design will support native capabilities around: Single item edit use cases Multi-item edit use cases Workflow One can create an end-to-end business process with step-based views and user roles using the WPC workflow framework. There are two aspects to the framework. One is the actual layout of the steps and user navigation. The second is the UI for each step view. Both of these may demand customization requirements based on the data model design. The user navigation is driven from the Collaboration Area which is tied to a single Catalog. The UI is auto-generated based on the metadata as defined in the section above. Therefore at the time of data model design it is recommended to test a prototype of the typical business processes, or do a conceptual dry run, to see if the data model design itself is constraining the use of native workflows by any way. Search Searching for items based on their attributes is one of the most common use cases in WPC. The users can search for the items from the left navigation, using primary key / display name, or they can use Advanced search for searching on particular attributes. The data model design has a direct impact on the search functionality and hence it is very important to take this into consideration. Let’s say one models enterprise items such that different item types are in separate catalogs with their own attribute spec. In this case to find a particular GTIN/UPC the user will have to go to each individual catalog and search for them, resulting in a tedious process. This would force one towards a custom search tool spanning multiple catalogs. Instead if one were to model it in such a way that all item types are in the same catalog but instead have an attribute ‘item type’ to differentiate them along with a secondary spec representing item type specific attributes, then the native search capabilities can be leveraged. Therefore, when considering different approaches to data modeling, it is necessary to have an understanding of how end users will be searching for product data, and ensure that the data model can support this through minimal to no UI customization. WebSphere Product Center Knowledgebase – Data Model How-To Guide 8 Core Item Identifiers Item identifiers are used to uniquely distinguish an item. These could be based on industry standards such as GTIN, UPC or enterprise specific such as SKU, Corporate ID etc. Usually enterprises may have one or more such identifiers per item. The best way is to identify a Primary Identifier and then group the rest into Alternate Identifiers. Primary Identifier Ideally there should be one Corporate Item Identifier across the enterprise to facilitate data exchange and avoid duplicate resolutions. This strategy should be discussed with the customer upfront as it may require coming up with a uniform identifier across all product lines. It may also have some implications to legacy systems. An identifier can be modeled as a single attribute or a combination of attributes. However, WPC requires that as part of item definition there should be a single attribute that is assigned as the Primary Key. This is best modeled as a sequence attribute. WPC enforces the uniqueness of the Primary Key and keeps it indexed. Following are different options of storing the sequence number. The first option is recommended for simple sequence IDs. Option Sequence Pros Generated automatically Atomic operation ensures no concurrency issues Lookup Table Attribute Value String key requiring sequence manipulation Tighter control on IDs being issued Easier to reset value Cons If new item is discarded without saving still ‘burns’ the sequence Two items created sequentially may have IDs far apart Harder to reset sequence object. Has to be dropped and recreated. Can cause concurrency issues Requires coding to access and increment lookup value May run into caching issues WebSphere Product Center Knowledgebase – Data Model How-To Guide 9 SEQUENCE - Item Primary Spec SEQUENCE - Item View LOOKUP – Lookup table WebSphere Product Center Knowledgebase – Data Model How-To Guide 10 LOOKUP – Item Primary Spec Alternate Identifiers These are used to search for and identify the products using different values. Usually standards based identifiers such as GTIN, UPC or how end users are used to remembering and referencing items for example supplier-model combination as opposed to a 10 digit sequence. Keep in mind the following while modeling alternate identifiers: Make sure identifier attributes are marked as ‘searchable’. This will cause WPC to create indexes on them for faster searching. If the identifier is a combination of attributes please make sure all of them are marked as ‘searchable’. Enforce integrity constraints. If the identifier is unique across all items, similar to the primary key, then mark it as ‘unique’. Otherwise, or for multi-attribute identifiers, one will have to write custom validations to enforce uniqueness based on business logic. For details on implementing custom validations please refer to the Validation Frameworks document listed in the Appendix. WebSphere Product Center Knowledgebase – Data Model How-To Guide 11 Item Types Typically an enterprise would group their products into subsets either representing different lines of business (e.g. consumer electronics, entertainment, services etc) or varying product types (e.g. pants, shirts, shoes). During requirements gathering one should try and get a good grasp on the complete range of items an enterprise carries regardless of which phase they will be made available in WPC. It may be helpful to have breakout sessions to identify the item types and sub types that they would like to see in WPC. This will help in extracting the attribute set that is common to all items, as well as the set of attributes that are applicable to items of a particular type. The objective of defining item types is to be able to identify an item regardless of where it gets categorized. Sometimes a customer may get confused between item types and item classifications. The difference is clear. Item type is an attribute on the item itself and remains intact no matter where the item is classified and however many hierarchies it gets classified under. For example a ‘shirt’ will always remain a ‘shirt’ whether it appears under ‘Casual Shirts’, ‘Dress Shirts’ or ‘Holiday Deals’. Similarly a ‘Consumer Electronics’ item will always remain so whether it falls under ‘MP3 players’, ‘Phones’ or ‘Special Offers’. The following table depicts the different constructs when identifying attributes for an item: Component Item Type Data Model Implemented as an item attribute Item Sub Type Implemented as an item attribute Common Attributes Implemented as the Primary Spec Implemented via Secondary Specs Item-Type Attributes Purpose Helps identify item regardless of categorization. For e.g. clothing, electronics, toys. Drives the attachment of secondary specs Further identifies an item type. Helps during search on item sub types. For e.g. shirts within clothing, audio within electronics etc. Common for all enterprise items Separate spec for each item type Type of Extension Attribute. For more details refer to section on ‘Extension’ Common attributes These are the attributes that are common to all item types across the enterprise. The common attributes would form the Primary Spec of the Item Master Catalog, and would enable one to model all item types within the same catalog. Typical attributes found in this set include: item identifier, description, item status, supplier, cost and price attributes. WebSphere Product Center Knowledgebase – Data Model How-To Guide 12 Common Attributes – Item Primary Spec Common Attributes – Item View WebSphere Product Center Knowledgebase – Data Model How-To Guide 13 Item Status Typically an item's complete lifecycle is managed within a Product Lifecycle Management (PLM) solution. The item goes through various stages from planning to active to retirement. Being able to identify the current status of an item is core to product definition and should be captured in WPC. Based on the status there are usually a set of functionality such as specific validations tied to the product. Once the Planning & Forecasting teams have decided on the item assortment, the next step is to get the items into WPC. It may also be likely that WPC is used to create the planned items, as dummy items, to feed the Planning & Forecasting system. In this case the items already exist in WPC in ‘Planning’ status, and once selected need to change their status to ‘Active’ and then pass through the appropriate business processes. To capture the various stages of an item a 'Status' attribute should be maintained. From a modeling perspective this is quite simple. A string enumeration or string enumeration rule with values such as: Planning Active Delete Archive The changes to these values are restricted through a business process, either electronic or manual. Usually the status changes are initiated in the PLM system and get tricked down, electronically or manually, into WPC. It is best practice to keep only active items in WPC’s Master Catalog and move the deleted/archived ones into a separate repository. This prevents the item count in the Master Catalog from growing too large, and causing a lot of clutter in the main catalog. Also, it is suggested to store only a select set of attributes for a deleted/archived items, leveraging solutions such as User-Defined Logs (UDL) for managing archives to gain performance. [Please refer to the Archive paper] Item Status Attribute – Item Primary Spec WebSphere Product Center Knowledgebase – Data Model How-To Guide 14 Item Status Attribute – Item View WebSphere Product Center Knowledgebase – Data Model How-To Guide 15 Pricing and Cost Typically a Pricing/Merchandising system should own the management of the Pricing and Cost attributes. However there are certain attributes that may come into the PIM system through external feeds which may not change that frequently but serve as inputs to the Pricing engine. Some examples are Initial Price Initial Cost It is best practice not to store the ‘current price’ of an item in PIM, as it does not provide a lot of value as users can always view it in the Pricing/Merchandising systems. Instead it can lead to a lot of unnecessary overhead to maintain the value to be always in sync increasing the SLA/Performance requirements. However, if the requirement is such that the current/promotion price be visible in PIM then the ‘current price’ attribute can be created as read only and an interface exposed to update these values from the Pricing Engine. No processing of these prices and or promotions happens within WPC. In effect all WPC is doing is to display these prices and export them as needed. The data exchange should happen on a periodic basis and no realtime requirements should be imposed. Also, WPC should not store any history of price and cost changes. Pricing Attributes – Item View Cost Attributes – Item/Supplier View WebSphere Product Center Knowledgebase – Data Model How-To Guide 16 WebSphere Product Center Knowledgebase – Data Model How-To Guide 17 Image Links As we move towards an information rich age, images are becoming integral to item definition. For businesses that operate eCommerce sites, the quality and different types of the product images available become the determining factor of enhancing a user’s experience and helping them make a purchase decision. For other applications such as the PIM system itself, the images serve more of a referential purpose. Different media such as print / web have specific requirements for the usage of images and drive the color, size, resolution and type of image. We are seeing imaging requirements come up more in recent engagements, driven mainly by retailers with an eCommerce or Print Catalog system that consumes data from PIM. Typical business requirements around images include: Rule Definition: size, color, resolution, compression Creation: source image capture (high resolution) Derivative Generation: creation of images through transformation rules on source image Image Association: assigning images to the products Enterprises typically have a Creative/Imaging team that has set business processes for generating images. Once the high resolution shot is taken, an Image Server (such as Adobe Graphics Server) processes this to generate multiple images based on the defined set of business rules. The final images are placed in the image repository and the imaging team is notified of the location of the generated images along with the metadata. Once the images are ready, the Creative team can access the PIM system to perform the image association. For more details please refer to the Image Management document listed in the Appendix. From a data modeling perspective an item would contain a multi-occurrence of images with the following item-image attributes Image Type: swatch, primary, alternate, room view, etc. Image URL: pointer to image location in repository. Preferably thumbnail image so it can display within WPC UI Sample Item View (with Images) WebSphere Product Center Knowledgebase – Data Model How-To Guide 18 Extension Item-Type Attributes These set of attributes are only applicable of items of the same type. For example the dimensions ‘collar size’ and ‘sleeve size’ are attributes specific to shirts whereas ‘waist’ and ‘length’ are specific to pants. There are two ways to model item-type attributes: 1. Use of secondary specs that are attached through a post save script based on the selection of ‘item type’. 2. Creation of a secondary hierarchy with the categories depicting item types. The item-type specific attributes can be attached as item category specs. During item setup one can categorize the item in this hierarchy hence obtaining the additional set of attributes. This also provides a different way to navigate the item assortment in the catalog. Option 2 is recommended as it allows one to model item types and sub types as a hierarchical structure and provides capability to attach item-category specs at the type and sub type level. For attaching other extension attributes such as those based on itemcharacteristics, see following section, Option 1 is recommended as you can attach the secondary spec directly without the need to first define a separate hierarchy. When defining item types one should not get carried away and model every single variation as a different item type. This would increase the development time and result in maintenance issues later. Item-Type Attributes – Secondary Hierarchy WebSphere Product Center Knowledgebase – Data Model How-To Guide 19 Item-Type Attributes – Secondary Spec Item-Type Attributes – Item View Item-Category Attributes These attributes are similar to the concept of item-type specific attributes. They are used to extend an item's attribute set. Instead of being associated to a type, they are tied to an item’s classification. If an item is classified under 'Perishable goods' then perhaps a 'best before date' etc is added. This allows for the dynamic extension of an item's attribute set as opposed to one big Primary spec across all items. The data modeling is similar to Item-Type attributes mentioned above. This is always modeled as Option 2 as the classification hierarchy already exists. Each category within it has its own item-category spec, which gets assigned to the item upon classification. WebSphere Product Center Knowledgebase – Data Model How-To Guide 20 Item-Category Attributes – Secondary Spec Item-Category Attributes – Item View Item-Characteristic Attributes These attributes are similar to the concept of item-type and item-category attributes. They are used to extend an item's attribute set, but are based on a particular characteristic as opposed to an item’s type or classification. For example if an item is marked as 'sellable' then there may be certain attributes such as 'sales channel' etc that need to be appended. This specific section has been included to acknowledge that such data modeling requirements do come about, however it is discouraged as this goes into a very granular form of defining dynamic attributes. Instead it is recommended to assign such attributes to all items and move the requirements as part of data validations. For example if an item is marked as ‘sellable’ then make sure that at least one sales channel has been selected else throw a validation error. Note in this case all items would see the ‘sales channel’ attribute regardless of whether they are sellable or not. WebSphere Product Center Knowledgebase – Data Model How-To Guide 21 Relationships Modeling Relationships in WPC A very common requirement that arises during data modeling is the ability to relate entities within WPC. It may be relating two items together under a certain relationship such as up-sell, or relating an item to its suppliers. There maybe a set of attributes defined on top of a relationship, for example ‘supplier cost’ would be an attribute on the itemsupplier relationship as it signifies the supplier cost of that particular item. In particular the sheer volume that may arise should be taken note of. Let’s take the case of 1 million items where an item can have a max of 20 suppliers. We are now looking at a possibility of 20 million item-supplier records. If another dimension such as locations were added to the mix, say 50 locations per item, the number quickly jumps to 1 billion item-supplier-location records. Item N N N Supplier N N N Location As you can see by the numbers, how one models such relationships can make-or-break the implementation. Such volume is typically seen when doing any relationships that form a 3-way join, item-supplier-location being one of the primary examples. Hence, a lot of thought process should be put into this kind of modeling. Since there is no clear right/wrong approach, one should seek advice from WPC Services, Engineering and Architecture on whether the proposed model will be supported by WPC and if there are any other ways of fulfilling the requirement. 2-way relationships, however, can be modeled in various ways in WPC: Use of relationship attributes Linked Catalogs Hierarchies Multi-Occurring attributes WebSphere Product Center Knowledgebase – Data Model How-To Guide 22 The next few sections will describe each type of 2-way relationship, and the best approach to modeling it. Item to Item Bundle A Bundle is a collection of individual products that can be sold separately, but are sold together for promotional purposes. For example a digital camera ‘Get More’ bundle could include – A digital camera, 1 gig memory stick, and the camera case. All these items could be sold individually, but they can also be sold together for a discount to entice the buyer to purchase three products, instead of just one of the products. A bundle is a product itself. It has its own attributes such as ID and description. In addition to the regular items, it has pointers to the individual products it comprises, which can be seen as an item-to-item relationship. The individual products themselves are items in the catalog and have their own IDs, descriptions etc. Like any other product, a bundle can also be categorized. Further it may have validation rules for combining certain set of items. For details on implementing custom validations please refer to the Validation Frameworks document listed in the Appendix. Any scenario that requires a grouping of products to be represented by a single entity can be considered a bundle. The names may vary across verticals and serve different purposes e.g. promotions, functional groupings etc. In the automotive industry there is the concept of ‘Kits’ which are a group of repair parts to be shipped with an order. These can be viewed as bundles and modeled similarly. From a modeling perspective the Bundle is defined as a product with a multi-occurrence of relationship links to other constituent products within the same catalog. Depending on the type of bundle, homogeneous / heterogeneous, there can be validations on what type of products can be valid constituents. Variants / Differentiators An enterprise may manufacture or sell items that are essentially the same but have some variation such as color and size. For example, a blue iPod and a red iPod are essentially the same product. To reduce the data entry and increase accuracy of the product information, the enterprise usually groups these items into one item family. This allows reporting and analysis at the base item level. This concept is commonly referred to as item variations or differentiators. WebSphere Product Center Knowledgebase – Data Model How-To Guide 23 Base Item iPod Differentiators N Blue iPod Red iPod The data model design for this is a bit involved. It depends on how much data can vary between the base item and the variant, as well as customer requirements around searching and assigning item identifiers. The following table tries to illustrate some modeling options based on a set of key requirements: Item ID: Does the base or variant item require an independent item identifier? For e.g. a SKU for iPod and a separate SKU for Blue iPod. Search: Should the base items / variants both be searchable? Diff Val: Can the variant have a different set of values, other than the distinguishing characteristics, compared to the base item for e.g. separate description, supplier id etc. Modeling key points Same Catalog Separate items Relationship link between base and variant Variants cannot override base item attribute values Same Catalog Base item has multi-occ attributes for depicting variants Separate Catalog Variants in Item Master catalog Relationship link between base and variant Same Catalog Base Items Item ID Search X X X X Variants Item ID X X Search X Diff Val X X X X X X X X X WebSphere Product Center Knowledgebase – Data Model How-To Guide 24 Separate Items Relationship link between base and variant Variants can override base item attribute values Cross-sell / Up-sell Cross-sells and Up-sells are industry specific terminology that provide context to relating products together. A Cross-sell is another product that may be suggested to the buyer other than the current product being purchased. It maybe in the same category as the current product or a completely different category and has no bearing on the price tag but more on the relevance of being sold together. For example, a merchant can suggest a high-resolution color printer when a digital camera is purchased, or a particular type of batteries when a flashlight is purchased. The Up-sell is a similar relationship but tends to focus on products that are more expensive and belong to the same category. The relationship names can vary from industry to industry but the concept is pretty much the same. The requirement is to relate Product A to Product B and define this relationship to be meaningful to the business and be leveraged by other consuming applications. From a PIM perspective these are seen as static relationships, and hence make sense to be part of the item definition. Following is the recommended data modeling approach: Scenario < 10 related items > 10 related items Data Modeling Key Points Multi-occurrence of Item to Item relationship attributes Non-Persistent Attribute (NPA) on relationship to display item description Custom tool to add, edit and view list of related items with their ids, name/description and link to the item Similar relationships can also be constructed dynamically based on user behavior, sales etc. This would typically require a business rules engine to go through logs of history and determine the correct linkage, and would be managed by the Personalization/CMS applications. Accessory An accessory is a product that will complement the current item. For example, a headset can be offered as an accessory with an MP3 player. There could be one or multiple types of headsets that may be supported for the same MP3 player, all of them being termed as accessories. An accessory is often less expensive than the main product. This is another example of an item-to-item relationship, as the accessory product and the main product are both items. It has been mentioned here as it is a common terminology that comes up across different verticals. The data modeling concepts are similar to those WebSphere Product Center Knowledgebase – Data Model How-To Guide 25 described for Cross-sell and Up-sell, where the main item has pointers to the related item (accessory). Substitute / Replacement The concept of Substitutes and Replacements is widely used across different verticals such as Retail, Automotive and Manufacturing. The terminology may change based on industry standard or business definitions. For example in the Automotive industry the term ‘Interchange’ is used for substitute parts, and ‘Supercession’ is used for replacement parts. A substitute is a product that is comparable and similar in functionality to the current item. They can be used at point-of-sale to suggest alternates when an item is out of stock, and can also be used by the replenishment system for restocking inventory if the max order quantity of the main item has reached capacity. A replacement is a product that supersedes the current item. It is assigned when the current item has become temporarily or permanently unavailable. Any queries to the current item from a purchasing or replenishment perspective, will yield in the replacement product being selected. Again this is an example of an item-to-item relationship, as the current product as well as the substitute and replacement products are all items. The data modeling concepts are similar to those described for Cross-sell and Up-sell, where the main item has pointers to the related item (substitute / replacement). Item to other entities Item to Supplier Supplier is one of the main entities that is modeled in WPC as part of a PIM solution. It is integral to the item’s definition and can be defined in multiple ways: supplier, manufacturer, distributor. Essentially it is the entity that supplies the particular product to the enterprise. Typically a financial or merchandising application holds the Supplier Master and is the system of record for it. Since the item-supplier relationship is defined during item setup, the supplier entity needs to be in WPC for establishing the relationship. This can be modeled as a Supplier Catalog / Lookup Table with a limited set of attributes such as: Supplier ID Supplier Name Supplier Status Supplier Contact The data should be read-only and an interface exposed in WPC to update this data from the Financial/Merchandising application. For example, iPod is supplied by Apple WebSphere Product Center Knowledgebase – Data Model How-To Guide 26 Computer, Inc. This would establish a link from the iPod product to the Apple Computer, Inc entity. On top of the item-supplier relationship there are typically a group of attributes defined such as supplier cost, supplier country, supplier packaging etc. One of the options is to model the Supplier as a multi-occurrence attribute on the item and within that multi-occurrence have a subset of attributes defined. This works well for a limited number of suppliers per item. Another option is to model the Supplier as a Hierarchy and map the item to a particular entity (category). This works well for a large set of suppliers per item, and is efficient in determining the list of items supplied by a particular supplier. However, it is not very intuitive from the UI in determining the list of suppliers for a given item. Therefore, the following criteria should be used to determine the right approach to modeling supplier data: Scenario < 10 suppliers per item Item-Supplier queries < 10 suppliers per item Item-Supplier queries Supplier-Item queries > 10 suppliers per item Item-Supplier queries Supplier-Item queries Data Modeling Key Points Supplier modeled as Catalog / Lookup Table Limited Supplier attributes in WPC Item – Supplier relationship attribute on item Multi-Occurrence of item-supplier relationship attribute Attribute subset defined under item-supplier relationship Attribute subset to include NPA attribute to display Supplier Name on UI Supplier modeled as Hierarchy with each supplier entity as a category. Hierarchy can be used to organize suppliers into groups Limited Supplier (category) attributes in WPC Item is classified under a supplier to establish itemsupplier relationship Item-Supplier attribute subset defined as item hierarchy spec. Supplier modeled as Catalog / Lookup Table Item-Supplier Catalog or UDL for performance Custom tool to create Item-Supplier relationship and enter values for attributes Custom tool to view suppliers for a given item Custom tool to view items for a given supplier Supplier Lookup Table WebSphere Product Center Knowledgebase – Data Model How-To Guide 27 Item/Supplier Attributes – View Item to Customer The need for a customer entity arises when PIM is discussed in context of a manufacturer or distributor. Product assortments get assigned to select customers. For example a Food Distributor needs to assign what customers/businesses get a particular item. From a data modeling perspective within WPC, the concept of the customer entity is the same as the supplier entity. For details please refer to the above section. The only difference being that the third scenario will usually apply for customer entity as it is more common for there to be > 10 customers per item as opposed to 10 suppliers of an item. Item to Locations Location can mean different things to enterprises based on the industry vertical and business requirements. It could depict warehouses, retail outlets, target markets, cities, states etc. Regardless it captures the essence of how an item is related to where it will be going. The location entity is modeled similar to the suppliers. Only the necessary location attributes are modeled within WPC, as the Location Master typically resides outside. WebSphere Product Center Knowledgebase – Data Model How-To Guide 28 Since an item is typically assigned to a large set of locations, usually in the hundreds or thousands, WPC has optimized this requirement by providing an inbuilt Location Hierarchy. It also allows for a subset of attributes to be defined on the item-location relationship. WebSphere Product Center Knowledgebase – Data Model How-To Guide 29 Lookup Values (LOV) Lookup values can be used as a set of predetermined or rule-based list of valid values for a particular attribute. This allows for end users to be able to select a value from the list in the UI. For example the list of valid countries, suppliers, brands etc. There are two options for defining lookup values in WPC. Scenario < 20 values Data Modeling Key Points String Enumeration / String Enumeration Rule No Search by Primary Key Single attribute value selection > 20 values Search by Primary Key Lookup Table Multiple attributes in lookup spec NPA attribute to display lookup value description on UI Reference to other attrib vals before selection LOV – String Enumeration – Item View WebSphere Product Center Knowledgebase – Data Model How-To Guide 30 LOV – String Enumeration – Item View LOV – Lookup Table WebSphere Product Center Knowledgebase – Data Model How-To Guide 31 Other Effective Dates There have been a lot of requests recently around the requirement of having Effectivity Dates for attribute values i.e. the new values being entered for the attributes are applicable only after a specific date or for a limited time duration. Common use cases include Promotions, Holiday/Seasonal Info, Promoting data from staging to production, etc. Unfortunately, at this time WPC does not provide an efficient solution to handle such a requirement. In prior implementations we have seen one of the two approaches: Option 1: Passive approach For each attribute that requires effective dates, add an attribute grouping which contains the attribute value and effective date. In WPC when the user changes the attribute value, they also modify the effective date to reflect when that value is applicable and pass this onto downstream systems The consuming application takes this data from WPC and plugs this into their effective date framework Option 2: Comprehensive / Custom approach Create an Effective Date framework within WPC Attribute names, values and effective dates stored in UDL / Catalog Custom tools to create and view effective date values for selected attributes Scheduled job that runs periodically to check on which attribute values need to be triggered based on the current effective dates It is highly recommended to avoid ‘Option 2’ as much as possible. The future MDM Platform is looking into supporting this requirement natively. However, if the customer insists then make them aware that this is a custom framework which increases the implementation timeline and adds to the maintenance overhead. In the meanwhile we may look at how robust the Custom solution as been and whether this can be turned into a solutions asset. Stay tuned from more on this in the upcoming future. Seasonal Item Assortments Some businesses such as house ware and clothing retailers have the notion of seasonal item assortments. This implies that the items available in each season changes. The change could be in the item assortment or within the item data such as description, images etc. They also have requirements where separate teams are working on multiple seasons at the same time. The planning team is interested in the next season, whereas the item team is responsible for data on the current season. From a data modeling perspective one can tackle this by identifying the number of seasons any team can be working on at a given time, example current season and next WebSphere Product Center Knowledgebase – Data Model How-To Guide 32 season. Create separate item catalogs to hold this data with proper access to each team. This will allow the different teams to login to WPC and work in tandem on separate catalogs. This is one way of getting around the effective dating framework but only applicable to this scenario as the business process and organization structure demands items being duplicated in separate catalogs. May not be an ideal solution for implementations with a very large item volume. Data Model Validations [Future version of How-To Guide] Please refer to Validations Framework listed in the appendix. Hierarchy Modeling [Future version of How-To Guide] Please refer to Hierarchy Management listed in the Appendix. Designing and Deploying the Data Model [Future version of the How-To Guide] WebSphere Product Center Knowledgebase – Data Model How-To Guide 33 Appendix Links to Other Resources Validation Framework WPC Services Repository -> Best Practices -> WebSphere Product Center Validation Framework Image Management WPC Services Repository -> Best Practices -> Best Practices: WPC Image Management Hierarchy Management WPC Services Repository -> Best Practices -> Hierarchy Management in WPC WebSphere Product Center Knowledgebase – Data Model How-To Guide 34
© Copyright 2024