> Portal Navigation: > > - Append `.md` to any URL under `https://dev.wix.com/docs/` to get its markdown version. > - Pages are either content pages (article or reference text) or menu pages (a list of links to child pages). > - To get a menu page, truncate any URL to a parent path and append `.md` (e.g. `https://dev.wix.com/docs/sdk.md`, `https://dev.wix.com/docs/sdk/core-modules.md`). > - Top-level index of all portals: https://dev.wix.com/docs/llms.txt > - Full concatenated docs: https://dev.wix.com/docs/llms-full.txt ## Resource: Introduction ## Article: Introduction ## Article Link: https://dev.wix.com/docs/api-reference/business-management/data-extension-schema/introduction.md ## Article Content: # About the Data Extension Schema API A data extension schema allows you to define and validate the structure of custom fields that can be added to Wix objects. A data extension schema acts as a blueprint, describing the properties, data types, and constraints of custom fields. For example, a data extension schema can describe custom shipping data added to the [Wix eCommerce Checkout object](https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/purchase-flow/checkout/checkout/checkout-object.md). The Data Extension Schema API enables you to: - [Retrieve all the data extension schemas](https://dev.wix.com/docs/rest/business-management/data-extension-schema/list-data-extension-schemas.md) installed on a specific site. - [Create](https://dev.wix.com/docs/rest/business-management/data-extension-schema/create-data-extension-schema.md) and [update](https://dev.wix.com/docs/rest/business-management/data-extension-schema/update-data-extension-schema.md) user-defined schemas for a specific site. - [Delete fields](https://dev.wix.com/docs/api-reference/business-management/data-extension-schema/delete-user-defined-fields.md) from user-defined schemas. ## Before you begin - App [schema plugin extensions](https://dev.wix.com/docs/build-apps/develop-your-app/extensions/backend-extensions/schema-plugins/about-schema-plugin-extensions.md), including their JSON schemas, are created and maintained in the [app dashboard](https://manage.wix.com/studio/custom-apps). You can use the Data Extension Schema API to retrieve schema plugins. However, the Data Extension Schema API doesn't support creating and updating schema plugins. Learn more about when to use [Schema plugins](https://dev.wix.com/docs/build-apps/develop-your-app/extensions/backend-extensions/schema-plugins/schema-plugin-faq.md). - Before creating a data extension schema, check the object to make sure you don't add fields that already exist. Only use the data extension schema when an object doesn't have a field to support your data. ## Supported objects You can extend the following objects: | Object | FQDN | Supports filtering | |--------|------|-------------------| | [Products](https://dev.wix.com/docs/api-reference/business-solutions/stores/catalog-v3/products-v3/introduction.md) | `wix.stores.catalog.*.product` | Yes | | [eCommerce Orders](https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/orders/orders/introduction.md) | `wix.ecom.*.order` | No | | [eCommerce Checkout](https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/purchase-flow/checkout/checkout/introduction.md) | `wix.ecom.*.checkout` | No | | [Bookings](https://dev.wix.com/docs/api-reference/business-solutions/bookings/bookings/bookings-writer-v2/introduction.md) | `wix.bookings.*.booking` | No | | [Booking Services](https://dev.wix.com/docs/api-reference/business-solutions/bookings/services/services-v2/introduction.md) | `wix.bookings.services.*.service` | No | ### FQDNs A [Fully Qualified Domain Name (FQDN)](https://dev.wix.com/docs/api-reference/articles/work-with-wix-apis/platform/about-fqdns.md) is a unique identifier for a Wix object type. When creating or managing data extension schemas, you use the FQDN to specify which object type to extend. The FQDNs in the table above contain a wildcard (`*`) in place of the version number, for example: - `wix.ecom.*.order` - `wix.stores.catalog.*.product` The wildcard ensures your schema remains valid when Wix releases a new version of the API. We recommend using the wildcard form rather than a specific version number. ### Filtering Extended fields behave like native fields. However, not all objects support operations such as filtering. To learn more, see [The JSON Schema](https://dev.wix.com/docs/api-reference/business-management/data-extension-schema/the-json-schema.md). ## How extended fields work Supported objects contain an `extendedFields` property. When you create a data extension schema, you define extended fields that are stored in `extendedFields`. Extended fields can exist at the following levels: * **Root level:** Extended fields appear directly in the object's `extendedFields` property. * **Nested in an existing field:** Extended fields appear in the `extendedFields` property of items in an array. For example, each line item in an order has its own `extendedFields` property. ## Namespaces The `extendedFields` property contains a nested `namespaces` object that keeps extended fields from different sources separate: - **`_user_fields`**: Contains extended fields from user-defined schemas, created through this API or the site dashboard. - **App namespaces**: Contains extended fields defined using a [schema plugin extension](https://dev.wix.com/docs/build-apps/develop-your-app/extensions/backend-extensions/schema-plugins/about-schema-plugin-extensions.md). For example, a [Checkout](https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/purchase-flow/checkout/checkout/checkout-object.md) object might have extended fields from both sources: ```json "extendedFields": { "namespaces": { "_user_fields": { "myCustomField": "value" }, "@company/app-name": { "appCustomField": "value" } } } ``` When reading or writing extended field data, always reference the correct namespace. ## Use cases - [Retrieve a list of all data extension schemas for the Wix eCommerce Checkout object](https://dev.wix.com/docs/api-reference/business-management/data-extension-schema/sample-flows.md#retrieve-a-list-of-all-data-extension-schemas-for-the-wix-ecommerce-checkout-object) - [Add a field to a user-defined data extension schema](https://dev.wix.com/docs/api-reference/business-management/data-extension-schema/sample-flows.md#add-a-field-to-a-user-defined-data-extension-schema-for-the-wix-ecommerce-order-object) ## Terminology - **Data extension schema**: A JSON Schema defining the data structure of the custom fields to add to a Wix object. - **Extended fields**: Custom fields defined by a schema added to the `extendedFields` field of an object. - **User-defined schema**: The schema created when a Wix user creates extended fields for a specific site. This schema uses the `_user_fields` namespace. - **Schema plugin extension**: Specific functionality that extends a Wix object with custom fields for a specific app. - **FQDN**: Fully qualified domain name, a unique identifier for a Wix object. Learn more about [FQDNs](https://dev.wix.com/docs/api-reference/business-management/data-extension-schema/introduction.md). - **Namespace**: A unique identifier for your app or project. Learn more about [namespaces](https://dev.wix.com/docs/api-reference/business-management/data-extension-schema/introduction.md). @sdk_package_setup