# Product Type import Learn about the headers and values supported for importing Product Types from CSV files. If you used the [Smart Data Modeler](https://docs.commercetools.com/merchant-center/product-types.md#use-smart-data-modeler-to-suggest-product-types-and-attributes) to define your Product Types, you can create and import them directly in Smart Data Modeler. If Smart Data Modeler detects a Product Type with the same key in your Project, you can choose whether to keep the duplicated Product Types or replace the existing Product Type. ## Supported headers and values You can update a Product Type only if it has a `key`. You can assign a `key` to a Product Type either from [Product Types and Attributes](https://docs.commercetools.com/merchant-center/product-types.md) or by using the [Product Type API](https://docs.commercetools.com/api/projects/productTypes.md#set-key). When updating Product Types, include only the headers and values for the fields you are updating. (a CSV formatted table follows. The first line are the column names.) Header,Value,Required/Optional `key`,A unique identifier for the Product Type that is imported. The key must only include letters, numbers, underscores (\_), or dashes (-). If a Product Type with the provided `key` exists in the Project, it is updated with the provided value—otherwise, a new entry is created.,Required `name`,A unique name for the Product Type.,Required `description`,A description for the Product Type.,Required `attributes.name`,A User-defined name of the Attribute that is unique to the Project.,Required `attributes.label`,A Human-readable label for the Attribute.,Required `attributes.isRequired`,Indicates whether the Attribute is required to have a value on each Product Variant.,Required `attributes.level`,Specifies whether the Attribute is defined at the Product or Variant level. Accepted values are `Product` and `Variant`. The default value is `Variant`.,Optional `attributes.attributeConstraint`,Specifies how an Attribute or a combination of Attributes should be validated across all variants of a Product. The default value is `None`.,Optional `attributes.inputTip.{locale}`,Localized additional information about the Attribute that aids content managers when setting Product details.,Optional `attributes.inputHint`,Provides a hint to the user on how the values of text Attributes should be displayed and edited. The default value is `SingleLine`.,Optional `attributes.isSearchable`,Indicates whether the Attribute's values are available in the [Product Search](https://docs.commercetools.com/api/projects/product-search.md) or the [Product Projection Search](https://docs.commercetools.com/api/projects/product-projection-search.md) API for use in full-text search queries, filters, and facets. The default is `true`.,Optional `attributes.type.name`,The attribute type name. Accepted values are `boolean`, `text`, `ltext`, `enum`, `lenum`, `number`, `money`, `date`, `time`, `datetime`, `reference`, `set:` (e.g `set:boolean`, or `set:text`),Required `attributes.type.referenceTypeId`,The resource type the value should reference. Accepted values are: `category`, `channel`, `key-value-document`, `product-type`, `product`, `review`, `shipping-method`, `state`, and `zone`,Required, when `attributes.type.name` is `reference` or `set:reference` `attributes.type.values.*.key`,Key of the enum value used as a programmatic identifier, for example in facets & filters. Use a separate row for each key.,Required, when `attributes.type.name` is `enum`, `lenum`, `set:enum`, or `set:lenum` `attributes.type.values.*.label`,Human-readable label for the enum value in the row.,Required, when `attributes.type.name` is `enum`, or `set:enum` `attributes.type.values.*.label.{locale}`,Localized label for the enum value in the row.,Required, when `attributes.type.name` is `lenum`, or `set:lenum` ## Delete data When updating resources, you can remove data for optional fields. To remove data, in the CSV file, enter `[DELETE]` as the value for the header (field). When deleting values for reference fields or multi-value fields, you must add a new column with the common prefix as the header, and enter `[DELETE]` as the value. ## Related pages - [Section overview page](https://docs.commercetools.com/merchant-center.md) - [Previous page: Products](https://docs.commercetools.com/merchant-center/import-products.md) - [Next page: Standalone Prices](https://docs.commercetools.com/merchant-center/import-standalone-prices.md)