# Interfaces

### Attribute

An attribute represents a type of value that can be assigned to a product.

Fields:

| code                                                                                | [**AttributeCode!**](/graphql/overview/schema/scalars.md#attributecode)            | Readable id of `Attribute`.                                                  |
| ----------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------- |
| name (languages: [**\[Language!\]**](/graphql/overview/schema/scalars.md#language)) | [**\[TranslatedString!\]!**](/graphql/overview/schema/objects.md#translatedstring) | Translatable name allowing to set different values in every active language. |
| scope                                                                               | [**AttributeScope!**](/graphql/overview/schema/enums.md#attributescope)            | Scope of `Attribute` determining its values behavior.                        |
| metadata                                                                            | [**\[Metadatum!\]!**](/graphql/overview/schema/objects.md#metadatum)               | Metadata allows describing the `Attribute` in an enhanced, custom way.       |

Implemented by:

* [**DateAttribute**](/graphql/overview/schema/objects.md#dateattribute)
* [**FileAttribute**](/graphql/overview/schema/objects.md#fileattribute)
* [**GalleryAttribute**](/graphql/overview/schema/objects.md#galleryattribute)
* [**ImageAttribute**](/graphql/overview/schema/objects.md#imageattribute)
* [**MultiSelectAttribute**](/graphql/overview/schema/objects.md#multiselectattribute)
* [**NumericAttribute**](/graphql/overview/schema/objects.md#numericattribute)
* [**OptionAttribute**](#optionattribute)
* [**PriceAttribute**](/graphql/overview/schema/objects.md#priceattribute)
* [**ProductRelationAttribute**](/graphql/overview/schema/objects.md#productrelationattribute)
* [**SelectAttribute**](/graphql/overview/schema/objects.md#selectattribute)
* [**TextareaAttribute**](/graphql/overview/schema/objects.md#textareaattribute)
* [**TextAttribute**](/graphql/overview/schema/objects.md#textattribute)
* [**UnitAttribute**](/graphql/overview/schema/objects.md#unitattribute)

### AttributeValue

Represents a value defining a specific attribute.

Fields:

| translations (languages: [**\[Language!\]**](/graphql/overview/schema/scalars.md#language)) | [**\[AttributeValueTranslation!\]!**](/graphql/overview/schema/interfaces.md#attributevaluetranslation) | A value translations.                        |
| ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | -------------------------------------------- |
| attribute                                                                                   | [**Attribute!**](#attribute)                                                                            | An `Attribute` describing the type of value. |

Implemented by:

* [**DateAttributeValue**](/graphql/overview/schema/objects.md#dateattributevalue)
* [**FileAttributeValue**](/graphql/overview/schema/objects.md#fileattributevalue)
* [**GalleryAttributeValue**](/graphql/overview/schema/objects.md#galleryattributevalue)
* [**ImageAttributeValue**](/graphql/overview/schema/objects.md#imageattributevalue)
* [**MultiSelectAttributeValue**](/graphql/overview/schema/objects.md#multiselectattributevalue)
* [**NumericAttributeValue**](/graphql/overview/schema/objects.md#numericattributevalue)
* [**PriceAttributeValue**](/graphql/overview/schema/objects.md#priceattributevalue)
* [**ProductRelationAttributeValue**](/graphql/overview/schema/objects.md#productrelationattributevalue)
* [**SelectAttributeValue**](/graphql/overview/schema/objects.md#selectattributevalue)
* [**TextareaAttributeValue**](/graphql/overview/schema/objects.md#textareaattributevalue)
* [**TextAttributeValue**](/graphql/overview/schema/objects.md#textareaattributevalue)
* [**UnitAttributeValue**](/graphql/overview/schema/objects.md#unitattributevalue)

### AttributeValueTranslation

Represents a translated attribute value for language.

Fields:

| language | [**Language!**](/graphql/overview/schema/scalars.md#language) | A language of a translation. |
| -------- | ------------------------------------------------------------- | ---------------------------- |

Implemented by:

* [**DateAttributeValueTranslation**](/graphql/overview/schema/objects.md#dateattributevaluetranslation)
* [**FileAttributeValueTranslation**](/graphql/overview/schema/objects.md#fileattributevaluetranslation)
* [**GalleryAttributeValueTranslation**](/graphql/overview/schema/objects.md#galleryattributevaluetranslation)
* [**ImageAttributeValueTranslation**](/graphql/overview/schema/objects.md#imageattributevaluetranslation)
* [**MultiSelectAttributeValueTranslation**](/graphql/overview/schema/objects.md#multiselectattributevaluetranslation)
* [**NumericAttributeValueTranslation**](/graphql/overview/schema/objects.md#numericattributevaluetranslation)
* [**PriceAttributeValueTranslation**](/graphql/overview/schema/objects.md#priceattributevaluetranslation)
* [**ProductRelationAttributeValueTranslation**](/graphql/overview/schema/objects.md#productrelationattributevaluetranslation)
* [**SelectAttributeValueTranslation**](/graphql/overview/schema/objects.md#selectattributevaluetranslation)
* [**TextareaAttributeValueTranslation**](/graphql/overview/schema/objects.md#textareaattributevaluetranslation)
* [**TextAttributeValueTranslation**](/graphql/overview/schema/objects.md#textattributevaluetranslation)
* [**UnitAttributeValueTranslation**](/graphql/overview/schema/objects.md#unitattributevaluetranslation)

### CustomField

A custom field represents a type of value that can be assigned to an attribute option.

Fields:

| code | [**CustomFieldCode!**](/graphql/overview/schema/scalars.md#customfieldcode) | Readable id of `CustomField`. |
| ---- | --------------------------------------------------------------------------- | ----------------------------- |

Implemented by:

* [**ImageCustomField**](/graphql/overview/schema/objects.md#imagecustomfield)
* [**TextareaCustomField**](/graphql/overview/schema/objects.md#textareacustomfield)
* [**TextareaRTECustomField**](/graphql/overview/schema/objects.md#textareartecustomfield)
* [**TextCustomField**](/graphql/overview/schema/objects.md#textcustomfield)

### CustomFieldTranslatedValue

Represents a value defining a specific `CustomField` in specific language only.

Fields:

| customField | [**CustomField!**](#customfield) | A `CustomField` describing the type of value. |
| ----------- | -------------------------------- | --------------------------------------------- |

Implemented by:

* [**ImageCustomFieldTranslatedValue**](/graphql/overview/schema/objects.md#imagecustomfieldtranslatedvalue)
* [**TextareaCustomFieldTranslatedValue**](/graphql/overview/schema/objects.md#textareacustomfieldtranslatedvalue)
* [**TextareaRTECustomFieldTranslatedValue**](/graphql/overview/schema/objects.md#textareartecustomfieldtranslatedvalue)
* [**TextCustomFieldTranslatedValue**](/graphql/overview/schema/objects.md#textcustomfieldtranslatedvalue)

### CustomFieldValue

Represents a value defining a specific `CustomField`.

Fields:

| customField                                                                                 | [**CustomField!**](#customfield)                                      | A `CustomField` describing the type of value. |
| ------------------------------------------------------------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------- |
| translations (languages: [**\[Language!\]**](/graphql/overview/schema/scalars.md#language)) | [**\[CustomFieldValueTranslation!\]!**](#customfieldvaluetranslation) | A value translations.                         |

Implemented by:

* [**ImageCustomFieldValue**](/graphql/overview/schema/objects.md#imagecustomfieldvalue)
* [**TextareaCustomFieldValue**](/graphql/overview/schema/objects.md#textareacustomfieldvalue)
* [**TextareaRTECustomFieldValue**](/graphql/overview/schema/objects.md#textareartecustomfieldvalue)
* [**TextCustomFieldValue**](/graphql/overview/schema/objects.md#textcustomfieldvalue)

### CustomFieldValueTranslation

Represents a translated custom field value for language.

Fields:

| language | [**Language!**](/graphql/overview/schema/scalars.md#language) | A language of a translation. |
| -------- | ------------------------------------------------------------- | ---------------------------- |

Implemented by:

* [**ImageCustomFieldValueTranslation**](/graphql/overview/schema/objects.md#imagecustomfieldvaluetranslation)
* [**TextareaCustomFieldValueTranslation**](/graphql/overview/schema/objects.md#textareacustomfieldvaluetranslation)
* [**TextareaRTECustomFieldValueTranslation**](/graphql/overview/schema/objects.md#textareartecustomfieldvaluetranslation)
* [**TextCustomFieldValueTranslation**](/graphql/overview/schema/objects.md#textcustomfieldvaluetranslation)

### OptionAttribute

An attribute with a predefined set of values(options).

Implements:

* [**Attribute**](/graphql/overview/schema/interfaces.md#attribute)

Fields:

| optionList (after: [**String**](/graphql/overview/schema/scalars.md#string), first: [**Int**](/graphql/overview/schema/scalars.md#int)) | [**OptionConnection!**](#optionconnection) | <p>A list of options of an <code>Attribute</code>.<br><code>first</code> argument cannot be lesser than 0 and higher than 200. The default value is 50.</p> |
| --------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |
| customFields                                                                                                                            | [**\[CustomField!\]!**](#customfield)      | Configured attribute custom fields.                                                                                                                         |

Implemented by:

* [**MultiSelectAttribute**](/graphql/overview/schema/objects.md#multiselectattribute)
* [**SelectAttribute**](/graphql/overview/schema/objects.md#selectattribute)

### Product

Fields:

| sku                                                                                                                                                                                                                            | [**Sku!**](/graphql/overview/schema/scalars.md#sku)                                                | sku                                                                                                                                              |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
| categoryList (after: [**String**](/graphql/overview/schema/scalars.md#string), first: [**Int**](/graphql/overview/schema/scalars.md#int))                                                                                      | [**CategoryConnection!**](/graphql/overview/schema/objects.md#categoryconnection)                  | <p>A list of categories <code>Product</code> belongs to.<br><code>first</code> argument cannot be lesser than 0 and its default value is 50.</p> |
| template                                                                                                                                                                                                                       | [**Template!**](/graphql/overview/schema/objects.md#template)                                      | Template of `Product`.                                                                                                                           |
| attributeList (after: [**String**](/graphql/overview/schema/scalars.md#string), first: [**Int**](/graphql/overview/schema/scalars.md#int), codes: [**\[AttributeCode!\]**](/graphql/overview/schema/scalars.md#attributecode)) | [**AttributeValueConnection!**](/graphql/overview/schema/objects.md#attributevalueconnection)      | <p>A list of <code>Attribute</code> values.<br><code>first</code> argument cannot be lesser than 0 and its default value is 50.</p>              |
| status                                                                                                                                                                                                                         | [**\[ProductStatusTranslation!\]!**](/graphql/overview/schema/objects.md#productstatustranslation) | Status of `Product`.                                                                                                                             |
| createdAt                                                                                                                                                                                                                      | [**DateTime!**](/graphql/overview/schema/scalars.md#datetime)                                      | Creation date.                                                                                                                                   |
| editedAt                                                                                                                                                                                                                       | [**DateTime**](/graphql/overview/schema/scalars.md#datetime)                                       | Last edition date.                                                                                                                               |

Implemented by:

* [**GroupingProduct**](/graphql/overview/schema/objects.md#groupingproduct)
* [**SimpleProduct**](/graphql/overview/schema/objects.md#simpleproduct)
* [**VariableProduct**](/graphql/overview/schema/objects.md#variableproduct)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.ergonode.com/graphql/overview/schema/interfaces.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
