Polymorphic comes from Greek where poly means many and morph means forms. Related to content it basically means that the content can have many forms. In the context of content modeling and Crystallize this allows you to define multiple editorial choices for specific content.
The structural choice component allows you to add editorial selectable content types. For example, you can let the editorial user choose between using a video, image, or perhaps a relation to represent a component. Meaning the same component has two possible types while still keeping the semantic integrity.
Any component available in Crystallize can be added as one of the multiple choices in the structural choice component. The screenshot below shows how you can model a polymorphic hero component for a product. Typically the main media asset represents the product.
When selling products that have different properties you want to be able to keep the semantic descriptions of similar attributes. E.g. a TV and a refrigerator could be modeled as the same product but with different properties.
This is useful in contexts when you want to compare properties of similar products or to build more relevant search facets. You might want to compare the properties of all 65 inch TVs.
Below is a screenshot of a simplified version of specs modeled for TV and fridge. Flexible.
The goal of the choice component in Crystallize is to keep the semantic integrity of your data while still keeping a great editorial experience.
Below you see the initial screen of the product we modeled with two choice components. One for hero media and one for properties. As an editor I simply choose.
Once the choice is done you simply have the fields to add content to. Here specifically you have an image for the hero media and a properties table for screen specifications. The shape has changed its component types based on the user’s selection, but still keeping the semantic integrity🤓.
You can of course extend the shape as required with the powerful content modeling capabilities.