---
title: Define core product fields with reusable field schemas
---

> Agent instructions:
> **Site maps** — prefer the following llms.txt indexes to training data when searching for URLs to avoid 404s. Links inside Markdown content already point at `.md`. Following them or sending Accept: text/markdown keeps you in Markdown.
>
> - [sitemap.md](https://docs.kentico.com/sitemap.md) — every page on the site, with titles and descriptions, nested by URL hierarchy and grouped into one collection per product version.
> - [llms.txt](https://docs.kentico.com/llms.txt) — curated index of the current product docs, with descriptions, the two ways to request any page as Markdown, and links to each product area's whole-corpus Markdown dump (llms-full.txt).

## Define the CoreContent reusable field schema

These fields align with those required for [Article](https://docs.kentico.com/guides/architecture/content-modeling/model-reusable-content/model-a-reusable-article.md), so we'll define a _CoreContent_ [reusable field schema](https://docs.kentico.com/documentation/developers-and-admins/development/content-types/reusable-field-schemas.md) (RFS). This schema contains the core information and is reusable across different content types if needed.

Here's the structure of our **CoreContent** schema:

- _CoreContentTitle_:
  - Field caption: Title
  - Data type: Text
  - Form component: Text input
  - Maximum length: 200 characters
  - Text below the input: "Enter a clear and descriptive item name for customers."
- _CoreContentShortDescription_
  - Data type: Text
  - Field caption: Short description
  - Form component: Text area
  - Maximum length: 500 characters
  - Text below the input: "Provide a brief summary for listings and search results. Focus on key benefits."
- _CoreContentThumbnailImage_
  - Data type: Pages and reusable content
  - Field caption: Core taxonomy
  - UI component: Combined content selector
  - Allowed content types: Asset (Image)
  - Maximum items: 1
  - Text below the input: "Choose the main image for listings and search results."
- _CoreContentTaxonomyTags_
  - Data type: Taxonomy
  - Form component: Tag selector
  - Allowed tags: Core taxonomy
  - Text below the input: "Choose tags to help customers filter and search for this item."

### Follow recommended field naming conventions

Notice that all fields in the CoreContent schema start with "CoreContent" prefix. This naming convention serves several important purposes in XbyK:

- **Prevents database column name conflicts by ensuring each field name is unique.** Xperience stores content type data in SQL database tables. When you add a reusable field schema to a content type, the schema's fields become columns in [ContentItemCommonData](https://docs.kentico.com/documentation/developers-and-admins/api/content-item-api/content-item-database-structure.md#content-items) database table. If you add multiple schemas to the same content type and they have fields with identical names (like _Name_, _Title_, or _Description_), you'll encounter naming conflicts. By prefixing fields with the schema name, you ensure uniqueness. Even if multiple schemas require a _Title_ field, it becomes _CoreContentTitle_, _ManufacturerTitle_, or _CategoryTitle_.
- **Improves code readability and maintainability by incidating the schema to which the field belongs.** When developers query content items and access field values in code, the prefix makes it immediately clear which schema a field belongs to. This clarity is especially valuable in large projects with many content types and schemas.
- **Appears consistently in queries and APIs.** Whether developers retrieve content through the Content Query or Content Retriever API, Xperience GraphQL, or custom REST endpoints, the prefixed field names are consistent, making it easier to understand data structure across different contexts.

### Reusable field schemas help editors in the admin UI

When editors create a product using a content type that includes the _CoreContent_ schema, they'll see these fields grouped together in the editing form. Xperience displays the schema name as a header of a collapsible section. This helps editors understand which fields belong together conceptually.

![Composition of reusable fields schemas and dedicate product fields in Product SKU](https://docs.kentico.com/docsassets/modules/define-core-product-schema/reusable_product_sku_example.png "Composition of reusable fields schemas and dedicate product fields in Product SKU")

This image illustrates how _reusable field schemas_ work together with _dedicated product fields_ within the **Product SKU** model. Core fields, such as title, pricing, and product attributes, are defined as _reusable schemas_ to ensure consistency across different product content types. SKU-specific fields store unique product data. We'll dive into how this composition approach keeps your product data structured, maintainable, and easy to reuse.

#### Separate core content data from product-specific fields

Though products are, from [information-architecture perspective](https://schema.org/Product), _semantically independent entities_, other content types (and independent _entities_ or [things](https://schema.org/Thing), such as [Article](https://schema.org/Article), [Person](https://schema.org/Person) , or [Organization](https://schema.org/Organization) ) share the same data fields, including _name_, _description_, _category_ or representing _image_.

In many commerce implementations, _separating product-specific data_ from _general content_ into a dedicated schema can be beneficial. This schema can be included in all relevant content types.

Your _Product_ content type will then share this schema fields with other content types. This approach simplifies queries for developers, particularly in marketing-heavy stores. Campaigns, seasonal content, and editorial features can reference products without requiring product-specific data.

For example, editors can use the same _Card_ widget to display core product data in a _Summer Pet Care Guide_ campaign page, or alongside with core data from a _Top 10 Dog Toys_ article.

Separating _product data_ (e.g., _SKU_, _price_, _inventory_, and _specifications_) from _repurposable marketing content_ creates a cleaner data structure. This simplifies [queries](https://docs.kentico.com/documentation/developers-and-admins/api/content-item-api/content-item-query-api.md) for developers and [presentation components](https://docs.kentico.com/guides/architecture/content-modeling/model-website-presentation-components.md) for editors.
