Alternative Categorization

Alternative categorization


Description

Alternative Categorization has been developed as the result of a multi-year collaboration with many of our customers. As our existing two-level categorization is not flexible and detailed enough to accommodate all the different requests and improvement ideas, we have created an alternative one that will coexist with the existing DataSource categorization. Many of our customers are relying on our legacy categorization which we will continue to maintain. However for those DataSource customers who would like to create a deep and versatile catalog tree on their website we now have a new Alternative Categorization they can take  advantage of. 

Alternative Categorization was developed with the following two goals in mind:


Goal 1: E-commerce-friendly Categorization 

  • Create an alternative product categorization deprived of the shortcomings of the existing DataSource categorization and related issues reported by DataSource customers.
  • This new categorization should comply with the e-commerce industry trends and best practices, and should be self-explanatory for the end-users.

Goal 2: Customization-ready Categorization

  • New alternative categorization should provide a good starting point for those customers that would choose to map DataSource categories to their own categorization.
  • In most of the instances DataSource customers should be able to map their categories to DataSource categories without the use of searchable attributes.


Features & Benefits


Categorization Structure

Alternative Categorization consists of five categorization levels:

Mandatory & Optional levels

Levels 1, 2, 3 and 4 are mandatory and every SKU will be assigned to at least one category on each level. 

Level 5 is optional. It exists only for certain catalog segments where four categorization levels are not sufficient.

Parametric search

Levels 1, 2 and 3 might contain products grouped from a variety of different categories, which might have a  different attribute structure. Consequently in most of the instances parametric search and side-by-side product  comparison will not work across all products from levels 1, 2 and 3.  Levels 4 and 5 are comprised of homogeneous products, and parametric search will work across any level-4 or  level-5 category.

Overlapping Categorization

Alternative Categorization is overlapping: certain SKUs might be included into several categories at a time.  For example, an all-in-one desktop with and Intel processor positioned as a PC Media Center by its manufacturer  will be assigned to three level-5 categories at the same time:

1001010101  Intel Desktops
1001010105  All-In-One Desktops
1001010106  PC Media Centers

Primary Category

When a product is linked to several categories, one of these categories is marked for this SKU as the primary  category. Every product has only one primary category.

Category IDs

Category IDs of Alternative Categorization are formed hierarchically and include IDs of the parent classification levels. Each classification level adds two digits to the ID. Consequently category ID of a level-1  category contains 2 digits, and category ID of a level-5 category contains 10 digits.

Category IDs usually do not change from one version of Alternative Categorization to another. However, if  a category is moved from one parent category to another, its Category ID will be changed to a new one. 

To avoid potential confusion, old Category IDs of moved or deleted categories will not be reused for anything else.

Category Keys

Category Key is a non-hierarchical unique category identifier that does not change when a category is moved  from one parent category to another.

We recommend using Category Keys in custom category mapping rules. Category Keys will help to make  transition to new versions of Alternative Categorization more seamless and effortless.

New Versions

We plan to release new versions of the categorization at least once a year or as needed. At the same time we will keep supporting older versions of Alternative Categorization and legacy DataSource Categorization as well.


Integration Choices

How could DataSource customers benefit from Alternative Categorization?

Some of our customers have already done extensive work on mapping their own categories to the legacy DataSource categories and searchable attributes, and may not have any plans or need for any further improvements.

However if a customer sees room for improvement, Alternative Categorization might be a good way to  improve catalog structure and website navigation.

Here are some of the options:
 

Replace

Alternative Categorization can be adopted and replace existing customer categorization. It might be taken as is, or might be flattened by removing the first or second categorization level, or grouping levels 4 and 5 together. It is also up to the customer whether to use categories marked as Optional and Obsolete.

Customize

Alternative Categorization can be used as a basis for custom categorization. As it is  deeper and more versatile than the legacy DataSource categorization, it is easier to create  mapping rules to any custom classes and categories using new Alternative Categorization structure.

Complement

Alternative Categorization might be used to complement customers’ existing  categorization mapping rules, especially for some of the segments, which – if legacy DataSource categorization is used – require creation of complex mapping rules and extensive use of  searchable attributes.


Advantages of New Categorization

The new Alternative Categorization is different from the legacy DataSource categorization in many ways:

 

Existing "Legacy" DataSource Categorization New Alternative Categorization

2 categorization levels: class & category

5 categorization levels for higher flexibility and depth 

246 unique classes & categories 

3310 unique categories on all hierarchical level

SKUs can be assigned to a single category

SKUs can be assigned to multiple categories

Fixed in time, does not change

Continually evolves with the changes in the marketplace


Examples of the improvements in Alternative Categorization versus the legacy DataSource categories:

Existing "Legacy" DataSource Categorization New Alternative Categorization

A single Desktops & Servers category

Desktops and Servers are split into 2 separate level-3 categories.  Servers are split into Tower Servers, Rack Servers, Blade Servers,  x86 Servers, RISC Servers, and Clusters. Desktops are split into  Desktops, Workstations, Barebone Systems, Thin Clients and  POS. Also there is a further split of Desktops into Intel Desktops,  AMD Desktops, Apple Desktops, All-in-One Desktops, and PC  Media Centers.

A single Camcorders & Digital Cameras  category

Camcorders & Digital Cameras are split into 2 separate level-3 categories (Digital Cameras and Camcorders). Digital Cameras are split into 5 categories (Compact Digital Cameras, SLR Digital Cameras, Mirrorless System Digital Cameras, Underwater Digital Cameras, Digital Cameras For Kids) and Camcorders are split into 9 categories (Flash Memory Camcorders, Action Cameras, HDD Camcorders, DVD Camcorders, High Definition Camcorders, Mini-DV Camcorders, HDV Camcorders, Analog Camcorders, Professional Camcorders)

A single Applications category for all games,  applications, utilities, licenses, etc.

Applications are split into 13 categories (Antivirus & Security,  Office Software, Business & Productivity, Development Tools,  etc.) and 100 more granular subcategories. Games are split into 8  categories and 112 subcategories.

USB cables can be found in several  categories: System Cables, Input Cables,  Output Cables, etc.

All USB cables are assigned to the same USB Cables subcategory of the Cables class. 

A single Network Cables category

Network Cabling class is split into Twisted Pair Cables (with 4  subcategories for Cat 5, Cat 5e, Cat 6 and Cat 6e cables), Coaxial  Cables, Fiber Cables, Patch Cables, Patch Panels, Crossover  Cables, etc.

 

Database Structure

 

Alternative Categorization is provided in the five new Download.zip tables:

Tables Files

cds_Cct_Categories
cds_Cct_Products
cds_Cct_Vocabulary
cds_Cct_Version
cds_Languages

Categorization\Cct_Categories.txt
Categorization\Cct_Products.txt
Categorization\Cct_Vocabulary.txt
Categorization\Cct_Version.txt
Catalog\Languages.txt

These tables are structured to deliver multiple versions of Alternative Categorization, as well as some other 3rd-party product classifications.

Unlike many other Download.zip tables, categorization tables are more likely to be opened and viewed manually by customers’ catalog managers, website developers and integration specialists. Therefore we included certain de-normalized fields that make the export schema more readable and understandable.

Alternative Categorization is added in addition to the existing legacy DataSource categorization, and does not replace it. It adds additional tables to the Download.zip, but does not change any of the existing tables or fields.

 

Tables Format

  • cds_Cct_Categories table is always complete and does not depend on the customer’s catalog. Consequently it will have all the categories including those that might not be applicable and may not exist in the cds_Cct_Products table. 
  • CategoryID is unique only within a certain version of categorization. CategoryID is formed hierarchically and includes the IDs of parent Categories. 
  • Breadcrumbs in the cds_Cct_Categories table are generated in English, and are intended for browsing/reference purposes. They show the categories of the previous levels. 
  • IsOptional indentifies extra/duplicating branches of the categorization tree added for user convenience and improved catalog navigation. 
  • IsObsolete is intended for old and/or mostly-dead technology categories like EDO RAM or Floppy Disks.
     

  • cds_Cct_Products table is linked to cds_Catalog_Info table and utilizes the same ProdID.
     

  • cds_Cct_Vocabulary table contains translations of category names to all languages a customer is subscribed to. 


  • cds_Cct_Version table identifies the version of the categorization.

All versions of the same categorization will have the same SourceID. The most recent version of the categorization is marked using IsLatest field.

Besides Alternative Categorization we plan to use these new tables for other 3rd-party categorizations. The SourceID for them will be different.
 

Client Export Schema

This schema is also applicable for the customers who receive cds_Catalog table instead of cds_Catalog_Info table in their download.zip. In this case cds_Cct_Products will be linked to cds_Catalog table.

 

DisplayOrder in cds_Cct_Categories

 

As Category IDs do not always represent the best sorting order for the categories, we recommend the display order of categories and sub-categories using logical category sorting when Desktops are followed by Notebooks, then Servers, eBook Reader, Storage products, Printers, Scanners, etc. 

DisplayOrder field provides consecutive numbering of all the categories. It lists the first level-1 category, then its first child, then the first child of its first child, and so on to the last level. For example: 

The DisplayOrder for these categories will look like:

Subscription Options

 

When adding Alternative Categorization tables to a download.zip, you will need to consider the following distribution options:

Versions

Fixed Version 
Customers can subscribe to a fixed version of Alternative Categorization. When a new version is released by, the customer will be notified but will continue to receive the old version until the 1WorldSync Customer Service team is specifically notified by the customer to do the switch to a newer version.
Latest Version
After 1WorldSync adds a new categorization version, customer is notified, and customer account is automatically switched to the latest version of Alternative Categorization.

Levels

All Levels
cds_Cct_Products table includes all the categorization levels: both lowest leaf levels and all their parent node levels. If a SKU belongs to level-5 “Intel Notebooks” category, it will also be explicitly associated with all its parent levels: level-1 “Hardware” category, level-2 “Systems” category, etc. 
Leaf Level
Only the last child level of every branch is delivered for each SKU. All parent node levels are not included in cds_Cct_Products, but can be calculated based on the parent category ID field in cds_Cct_Categories table.

Uniqueness

Multiple Categories
cds_Cct_Products contains multiple same-level categories for the SKUs that belong to more than one category. One of these categories will always be marked as Primary. 
Single Category
cds_Cct_Products contains only one category for each SKU. If a SKU belongs to several categories, only the primary category is delivered in the download.zip. This option is intended for the customers with single-category-per-SKU constraint in their databases.

 

Distribution Mode

 

All the categorization tables are non-incremental. Each download.zip contains a full update of categorization data for all SKUs in the customer’s catalog.

Here are the default settings 1WorldSync recommends and will apply for all new accounts and customers:

Versions

Latest Version

Levels

All Levels

Uniqueness

Multiple Categories

 

Related Queries

Here are the sample queries for Alternative Categorization data.

-- All available categories

SELECT *
FROM cds_cct_categories;

-- Different level of categorization for a product

 SELECT p.prodid,
 p.catid,
 v.categoryname,
 p.isprimary,
 languageid,
 c.breadcrumbs
FROM cds_cct_products p JOIN cds_cct_vocabulary v
ON v.catid = p.catid
JOIN cds_cct_categories c
ON c.catid = p.catid
WHERE p.prodid = 'PRODUCTID'
ORDER BY Length(p.catid), p.catid

-- Primary Category Last Level

SELECT pc.prodid,
       c.catid,
       v.categoryname
FROM   (SELECT p.prodid,
               Max(p.catid) AS maxcatid
        FROM   cds_cct_products p
               INNER JOIN cds_cct_categories c
                       ON c.catid = p.catid
        WHERE  p.isprimary = 1
        GROUP  BY p.prodid) pc
       INNER JOIN cds_cct_categories c
               ON c.catid = maxcatid
       INNER JOIN cds_cct_vocabulary v
               ON v.catid = maxcatid
WHERE  languageid = 'en'