eBay SDK for .NET
Attributes & Catalogs > Attribute and Product Finder Content Models > The Attribute Meta-Data Model 
 



< Back Next >

The Attribute Meta-Data Model

Before reading this section, you should be familiar with the basic definitions of attributes, characteristics, characteristic sets, and products as described in Working with Attribute-Based Features.

When you use GetAttributesCSCall and GetProductSellingPagesCall (or classes that implement the IAttributesXmlProvider interface) the attribute meta-data is returned as an XML string in the AttributeData and ProductSellingPagesData field, respectively. This enables you to use the Item Specifics SYI XSL stylesheet to render the meta-data.

If you are using the Item Specifics SYI XSL stylesheet as part of your solution, it may be helpful to focus on these topics of this section:

AttributeData Container Elements

ProductSellingPageData Container Element

CategoryMappingDetails Elements

CharacteristicsSet Elements

Attribute Elements

If you are not using the Item Specifics SYI XSL stylesheet, you should understand how the dependencies between different attributes are represented in the XML schema and how those dependencies affect the validation of attributes that you choose to include in a listing. Thus, you should read these topics:

AttributeData Container Elements

ProductSellingPageData Container Element

AttributeSet Elements

CategoryMappingDetails Elements

CharacteristicsSet Elements

Attribute Elements

Promotional (Promo) Message Elements

GlobalSettings Element

Important: eBay strongly recommends that you avoid directly modifying the XML returned from GetAttributesCSCall and GetProductSellingPagesCall, except where described in Working with the Item Specifics XSL Stylesheet. Any other direct changes to the XML documents returned from these attribute and product meta-data calls are not supported.

AttributeData Container Elements

The following figure illustrates the root container nodes that are returned in the AttributeData XML string when you execute GetAttributesCSCall. Table 23-1 describes the purpose of each container node. The ProductSellingPagesData XML string contains similar information.

Figure 23-1 High-Level View of the Item Specifics Model (GetAttributesCS)

Elements in the Item Specifics model can specify XML attributes (not to be confused with item attributes). In the table below, the XML attributes (e.g., id) are described in bulleted lists within the "Meaning/Notes" column.

Table 23-1 AttributeData Content
Element
Meaning/Notes
eBay.Attributes 
Contains a list of one or more AttributeSet nodes (see below).
eBay.Attributes.AttributeSet 
Contains information that identifies attributes and values that have been pre-selected by eBay. See AttributeSet Elements for details about the elements in this container.
In the GetAttributesCSCall response, these attributes indicate the default value(s) that you should display for each attribute when that attribute is first presented to the user. If no default values are specified, you typically display the first value (if any) in the attribute's value list.
In the GetProductSellingPagesCall response, this set contains attributes that are pre-filled. Some of these attributes might be editable (see Determining Whether the User Can Choose an Attribute Value).
  • id (integer): Identifier for the attribute set. Unique across all eBay sites.
eBay.Attributes.CategoryMappingDetails 
Contains a list of one more more categories for which eBay has defined pre-filled attributes. See CategoryMappingDetails Elements for details about the elements in this container.
eBay.Characteristics 
Contains a list of CharacteristicsSet nodes.
If you pass an AttributeSystemVersion value that is older than the current version of the meta-data on the site, all the characteristic sets that you requested that have changed since that version are returned.
If a characteristic set you requested has not changed since the specified version, its meta-data is not returned (i.e., the Characteristics node returns empty.)
eBay.Characteristics.CharacteristicsSet 
Contains one category's set of characteristics, promotional messages related to all the characteristics in the set, and presentation instructions for rendering the characteristics. See CharacteristicsSet Elements for details about the elements in this container.
  • id (integer): Identifier for the characteristic set. Unique across all eBay sites. Same ID as the AttributeSet.
  • order (integer): (May be returned, but it is not supported by the API)
  • type (string): Applicable for certain eBay sites only. If present, the value is "SiteWide". Indicates that this is a site-wide characteristic set (see Summary of the Attributes Model).
eBay.GlobalSettings 
Container for localized month formats. This node is always returned, even when no characteristic set meta-data is returned. See GlobalSettings Element for details about the elements in this container.

ProductSellingPageData Container Element

The following figures illustrate the root container nodes that are returned in the ProductSellingPageData XML string when you execute GetProductSellingPagesCall. Table 23-2 describes the purpose of each container node.

Figure 23-2 High-Level View of the Product Model (GetProductSellingPages)

Elements in the Pre-filled Item Information model can specify XML attributes (not to be confused with item attributes). In the table below, the XML attributes (e.g., id) are described in bulleted lists within the "Meaning/Notes" column.

Table 23-2 ProductSellingPageData Content
Element
Meaning/Notes
Products 
Container for the list of products whose Pre-filled Item Information should be included in item listings.
Products.Product 
Container for product information and attribute meta-data.
  • id (string): Unique identifier for the product. Your application should store the ID to use later for adding the item with Pre-filled Item Information.
...DataElements.DataElement 
An HTML snippet that specifies hints for the user, help links, help graphics, and other supplemental information that varies per characteristic set. Usage of this information is optional and may require developers to inspect the information to determine how it can be applied in an application. Formatted as CDATA (i.e., <![CDATA[...]]>)
...ProductInfo.DetailsURL 
Fully qualified URL for optional information about the product, such as a movie's description or film credits. This information is hosted through the eBay site and cannot be edited. Applications can include this URL as a link (e.g., in a Title & Description page) so that end users can view additional descriptive information about the product before choosing to include it in a listing.
...ProductInfo.StockPhotoURL 
Fully qualified URL for a standard image that is associated with the product. A user can choose to include the stock photo in the listing (see Define the Item). Not returned if no stock photo is available.
...ProductInfo.Title 
Title associated with the product. This value can be used as the basis for a suggested listing title. If the title is longer than 55 characters, your application should make sure the suggested title has a max length of 55 characters so that it will be valid for AddItemCall.
...Copyrights.Copyright.CopyrightContent 
Copyright statement indicating the source of the product information. This information will be included in the listing with Pre-filled Item Information. Your application should also display this information. If more than one copyright statement is applicable, they can be presented to the user in alphabetical order.
...Attributes 
Container node for a list of AttributeSet nodes, which identify default values that are pre-filled in the catalog for certain attributes. An attribute is a salient aspect or feature of an item. See AttributeSet Elements.
...Characteristics 
...GlobalSettings 

AttributeSet Elements

The AttributeSet node contains the list of Attribute nodes for which values have been pre-selected by eBay. In the context of GetAttributesCSCall, these can be treated as default values. In the context of GetProductSellingPagesCall, these attributes indicate pre-filled values that are read-only (Type 1) or conditionally selectable (Type 2). See Determining Whether the User Can Choose an Attribute Value.

Default values can also be associated with user-definable (Type 0) attributes. For example, if 80% of sellers always list 2 tickets, eBay could pre-select "2" as the default number of tickets, but the user would always be able to override this value.

In some cases, eBay also defines pre-filled values that vary according to the leaf category the seller selects. These are returned in the CategoryMappingDetails node. If such values are available, you can use them instead of the default values defined in the AttributeSet node. See CategoryMappingDetails Elements.

The AttributeSet node specifies the corresponding characteristic set name (e.g., "Tickets") and the attribute defaults, if any. Each attribute can have a label (SellingDisplayLabel) and a value (Value).

Note: When a user selects or enters data and then posts the data, your application can generate a revised XML file locally that specifies the attributes the user selected. If you are using the optional Item Specifics XSL, the user's selections and input can be placed in a new node (SelectedAttributes) that is not defined in the characteristic set XML document. See Working with the Item Specifics XSL Stylesheet for more information.

As described in Table 23-1, the AttributeSet node itself has one XML attribute: id (an integer), which specifies the constant, language-independent identifier for the attribute set (unique across all eBay sites).

The following figure illustrates the elements contained in the AttributeSet node. Table 23-3 describes the purpose of each element.

Figure 23-3 The AttributeSet Model

Elements in the Item Specifics and Pre-filled Item Information models can specify XML attributes (not to be confused with item attributes). In the table below, the XML attributes (e.g., id) are described in bulleted lists within the "Meaning/Notes" column.

Table 23-3 AttributeSet Content
Element
Data Type
Meaning/Notes
Attribute 
Container
Container node for attributes whose default values are pre-selected.
  • vivisible (boolean): If true (1), the attribute is initially visible.
  • count (integer): The quantity of values the attribute contains.
  • displaysequence (integer): The attribute's display order relative to other attributes in the set.
  • source (string): The data source of the attribute's value. Possible values:
  • 0 = Seller specifies value (either enumerated or entered in text field).
    1 = Value(s) pre-filled by catalog
    2 = Computed based on other values or user input
    3 = Value(s) pre-filled by eBay
    4 = Created by a Sell Your Item use case
    If the value of source is 1 or 3 and the value of Attribute.EditType is 1 or 2 (pre-filled), the attribute should be displayed as read-only.
Attribute.SellingDisplayLabel 
string
Display name for the attribute as shown on the Sell Your Item pages.
Attribute.Value 
Container
The default value selected for the attribute. A Value element may contain other elements (e.g., Name) or it may be an empty tag that only specifies an ID (e.g., <Value id="1001" />).
  • id (integer): Identifier for the value. Possible ID values:
  • -3 = Literal value (e.g., "Please choose State")
    -5 = Full date (day, month, and year)
    -6 = A value of "Other"
    -10 = -- (display a dash)
    ID = An ID that is unique within the characteristic set (e.g., 1001)
Attribute.Value.Day 
string
If present, the default (or pre-filled) day to present to the user (e.g., 01).
Attribute.Value.Month 
string
If present, the default (or pre-filled) month to present to the user (e.g., 04).
Attribute.Value.Name 
string
If present, the display name for the value. The content of the Name element can be CDATA (i.e., <![CDATA[...]]>.
Attribute.Value.Year 
string
If present, the default (or pre-filled) year to present to the user (e.g., 2004).
DomainName 
string
The well-known name of the characteristic set (e.g., "Tickets").

CategoryMappingDetails Elements

Important: The IncludeCategoryMappingDetails flag is not available in the version of the WSDL that is delivered with the eBay SDK for .NET. You can use this functionality by updating the GetAttributesCSRequestType class based on the latest version of the WSDL. For more information, see Using a WSDL to Update the SDK.

A CategoryMappingDetails node contains information active categories and, in some cases, old categories that are mapped to the active categories. For each mapping, it also contains information about attributes that can be auto-filled if the specified active or obsolete category is selected in the listing flow. This node is only returned when you specify IncludeCategoryMappingDetails in the GetAttributesCS request (and when the site supports this feature).

Note: You are not required to use this category mapping information. It is provided for applications that support sellers who want more control over their attribute selections.
Alternatively, you can pass Item.CategoryBasedAttributesPrefill and Item.CategoryMappingAllowed in the listing request and eBay will automatically auto-fill the same attributes for you based on the category specified in the request.

If you are using the Item Specifics SYI XSL Stylesheet to render an Item Specifics form, see Auto-filling Attribute Values Based on a Listing's Category for information on how to include auto-filled data when you initially render a form.

In some cases, the attributes are determined by the active category only. (An obsolete category might not be present in the mapping.) In this case, the attribute values may represent the most common selections, or they may represent values that are logically equivalent to a particular category. For example, if the category is DVD & Movies > VHS, eBay might return a Format attribute auto-filled with the value "VHS".

In other cases, the attribute values are determined by mappings between obsolete and active leaf categories. These are for cases in which the obsolete category has been combined with an active category. In this case, the attributes usually reflect the semantics of the obsolete category. For example, if the obsolete category represented a specific brand of bicycle (Cannondale), and the category is now mapped to a more generic active category (Road Bikes & Frames), eBay might return a Brand attribute with a value that reflects the old category's semantics (Cannondale). Using this information in a listing enables seller to maintain the differentiation that was previously provided by the old category. Auto-filled attributes for combined categories are primarily useful when revising or relisting an item whose category is no longer valid.

These category-based values vary according to the leaf category. That is, unlike the default values specified in AttributeSet Elements, these auto-filled attribute values are not applicable as defaults for all categories that are mapped to the same characteristic set.

Figure 23-4 shows an example of the way eBay might return category mappings with auto-filled attributes (Brand=Cannondale and Brand=Specialized) based on old leaf categories (Cannondale and Specialized).

Figure 23-4 Attributes Auto-filled Based on Old Categories

The old and new categories and the corresponding pre-filled attributes would be provided in the following mappings in the meta-data. Given this example, if the seller originally defined an item with category 58091 (Cannondale), you could update the item to use category 98084 (Complete Bikes & Frames) and then use the first mapping below to pre-fill the Brand attribute with value 30306 (Cannondale). (The seller could then change the value if necessary.)

Example 23-1 Attributes Auto-filled Based on Old Categories
<CategoryMapping oldId="58091" id="98084"> 
  <AttributeSet id="1895"> 
    <Attribute id="14"> 
      <Value id="30306"> 
        <Name><![CDATA[Cannondale]]></Name> 
      </Value> 
    </Attribute> 
  </AttributeSet> 
</CategoryMapping> 
<CategoryMapping oldId="58092" id="98084"> 
  <AttributeSet id="1895"> 
    <Attribute id="14"> 
      <Value id="30355"> 
        <Name><![CDATA[Specialized]]></Name> 
      </Value> 
    </Attribute> 
  </AttributeSet> 
</CategoryMapping> 

GetAttributesCSCall returns current mappings only (not historical mappings). For example, the mapping of a category could occur in this manner:

  1. In January, eBay maps category 123 to category 456. (These IDs are for illustration only; they are not a real category mapping.)
  2. Thus, in January the 123-to-456 mapping is returned.

  3. In May, eBay maps category 456 to category 789.
  4. Category mappings are transitive, so in May category 123 is now also mapped to category 789.

    Thus, in May two mappings are returned:

    • One for the 123-to-789 mapping
    • One for the 456-to-789 mapping.
    • The previous (historical) 123-to-456 mapping is no longer returned because 456 is no longer an active category.

      Furthermore, the attributes that are returned for the 123-to-789 mapping might be different from the attributes that are returned for the 456-to-789 mapping (because the "original" categories are different).

The following figure illustrates the elements contained in the CategoryMapping node, which is a child of CategoryMappingDetails. Table 23-4 describes the purpose of each element.

Figure 23-5 The CategoryMapping Model

Elements in the Item Specifics and Pre-filled Item Information models can specify XML attributes (not to be confused with item attributes). In the table below, the XML attributes (e.g., id) are described in bulleted lists within the "Meaning/Notes" column.

Table 23-4
Element
Data Type
Meaning/Notes
eBay.Attributes.CategoryMappingDetai
ls.CategoryMapping 
Container
Information about attributes that can be auto-filled if the specified active or obsolete category is selected in the listing flow.
Only returned when IncludeCategoryMappingDetails is specified in the GetAttributesCS request.
Auto-filled attributes for combined categories are primarily useful when revising or relisting an item whose category is no longer valid. See Mapping Old Category IDs to Current IDs.
  • id (integer): ID of an active category. Unique for the site. Multiple mappings can return the same active category ID (because different old IDs can be mapped to the same active category).
  • oldId (integer): ID of a category (if any) that has been combined with the active category. Unique for the site. Only returned for one mapping (because an old ID can only be mapped to one active category ID).
AttributeSet 
Container
Contains the list of Attribute nodes that specify auto-filled values for the category mapping.
  • id (integer): Identifier for the attribute set. Matches a characteristic set ID defined in the CharacteristicsList node returned from the same call. Unique across all eBay sites.
...AttributeSet.Attribute 
Container
Container node for attributes that specify auto-filled values based on the category mapping. Multiple Attribute nodes can be returned within a given AttributeSet node.
  • id (integer): Identifier for the attribute. Matches an attribute defined in a CharacteristicsList returned from the same call.
...AttributeSet.Attribute.Value 
Container
The auto-filled value. A Value element may contain other elements (e.g., Name) or it may be an empty tag that only specifies an ID (e.g., <Value id="1001" />).
  • id (integer): Identifier for the value. Possible ID values:
    • -3 = String value from a text field
    • -5 = Full date (day, month, and year). Not applicable as input to listing calls (only applicable when auto-filled by eBay).
    • -6 = A value of "Other"
    • ID = An ID that is unique within the characteristics set (e.g., 1001)
...AttributeSet.Attribute.Value.Name 
string
If present, the display name for the value. The content of the Name element can be CDATA (i.e., <![CDATA[...]]>).
...AttributeSet.Attribute.Value.Year 
string
If present, the year (e.g., 2005) to present to the user as an auto-filled value.

CharacteristicsSet Elements

A CharacteristicsSet node contains one category's set of characteristics, promotional messages related to all the characteristics in the set, and presentation instructions for rendering the characteristics.

The following figure illustrates the elements contained in the CharacteristicsSet node. Table 23-5 describes the purpose of each element.

Figure 23-6 High-Level View of the CharacteristicsSet Model
Table 23-5 CharacteristisSet Content
Element
Meaning/Notes
DomainName 
The well-known name of the characteristic set (e.g., "Tickets").
CharacteristicsList 
Container node for a list of characteristics within the specified set. See CharacteristicsList Elements for details about the elements in this container.
PresentationInstruction 
Hints for how to display attributes in a graphical user interface. Container tag for the list of instructions. See PresentationInstruction Elements for details about the elements in this container.
The presentation instructions are designed to work with eBay's Item Specifics SYI XSL stylesheet to render Item Specifics. Future versions of the presentation instructions may not be backward compatible. If you are not using the XSL, you can use the presentation instructions programmatically, but you should avoid hard-coding the presentation values for specific attributes. Check for updates to the meta-data on a daily basis to assure you are in sync with eBay's current version. It is also a good idea to keep a backup of the last version of the meta-data that you downloaded, so that you can revert to the last version if necessary.
  • pageLocation (string): Identifies the location (e.g., the return policy section) where the attributes listed in the presentation instructions appear on the eBay Web site. If not specified, the default location is the Item Specifics section in the Sell Your Item flow.
Note: Different characteristic sets can return different combinations of presentation instructions, including XML attributes. Some presentation instruction elements may include additional XML attributes that are not documented. These are usually specific to one characteristic set and are used internally at eBay. Applications can ignore this internal information.

CharacteristicsList Elements

A characteristic set contains a characteristics list and other information. A characteristics list is organized into three major sections. Table 23-6 describes the Initial, Conditional, and Other container elements. Each of these elements contains zero or more Attribute nodes.

Table 23-6 CharacteristicsList Content
Element
Data Type
Meaning/Notes
Initial 
Container
Contains all the characteristics that should initially be available to the user. This is the list of attributes to present when the user first accesses the Item Specifics user interface. See Attribute Elements.
Conditional 
Container
Contains additional characteristics that should initially be hidden from the user.
This is a list of attributes that are conditionally visible based on the user's initial selections. Initially, these attributes are not visible. They become visible based on the values that are chosen for other attributes. See Conditional Characteristics.
Empty (e.g., <Conditional></Conditional>) if not applicable.
Other 
Container
Contains characteristics for storing values that the user enters in "Other" fields. These are attributes that might need an "Other" entry based on the user's initial selections. See Other-Value ("Other") Characteristics.
Empty (e.g., <Other></Other>) if not applicable.

The following subsections describe the purpose of each of these sections in more detail.

Initial Characteristics

The Item Specifics SYI XSL stylesheet handles the logic described in this section. Therefore, the following information should mainly be of interest if you are not using the stylesheet in your solution.

When you present a characteristic set to a user, you should begin by displaying a subset of the available characteristics. This prevents the user from making invalid or unnecessary selections. For example, one of the first characteristics a user chooses in the Tickets characteristic set is the Event Type. The Event Type has a list of possible values, such as "Concerts", "Movies", and "Other".

Figure 23-7 An Initial Characteristic

Other-Value ("Other") Characteristics

If a user selects "Other" (e.g., from a drop-down list), eBay may display a text input field to allow the user to enter a value. In this documentation, these are referred to as other-value characteristics.

Figure 23-8 An Other-Value Characteristic (Venue City)

Other-value characteristics have a simpler structure than initial and conditional characteristics.

The Item Specifics XML defines three main types of values that can contain "Other". These are distinguished by their IDs:

These values (and other values with negative IDs) are also summarized in Attribute Elements.

Conditional Characteristics

The Item Specifics SYI XSL stylesheet handles the logic described in this section. Therefore, the following information should mainly be of interest if you are not using the stylesheet in your solution.

Based on the user's selections, the application may need to display additional characteristics that were not initially presented to the user. In some cases, these characteristics should only be presented when certain values are chosen for other characteristics. Otherwise, they will be invalid for the listing. If these characteristics are predefined (i.e., they do not correspond to "Other") the characteristics are called conditional. Conditional characteristics can have the same structure as initial characteristics.

For example, some governments require the seller to specify the face value of a ticket. If the seller indicates that the event is in that government's location, the application should present an additional field called "Face Value". Otherwise, the application should not present the field (as it will be invalid for the listing). API applications should provide similar functionality. See Child Attribute Visibility Dependencies (Type 4: Value-to-Attribute) for additional information.

Figure 23-9 A Conditional Characteristic (Face Value)
Note: On eBay Web sites, conditional characteristics are usually displayed on a separate page. If you use the Item Specifics SYI XSL stylesheet, conditional characteristics are rendered on the same page as initial characteristics.

Attribute Elements

This section describes the Attribute content model. Some of the subsections are useful to understand regardless of whether or not you are using the Item Specifics SYI XSL stylesheet.

Each characteristic is represented by an Attribute node. Each attribute (or characteristic) is identified by an ID and has a Label element containing the display name. Both the ID and the label are unique within the characteristic set. For example, the event-type attribute ID is 40 and its label is Event Type. When the user selects a value (or values, if multiple selections are allowed) for an attribute, the application should store the IDs of that attribute and value. You will need this information in order to list the item (see Summary of the Attributes Model for IDs needed to list items).

Note: Attribute IDs are unique within the same characteristic set, but they are not necessarily unique across all characteristic sets. You shouldn't assume that two attributes with the same ID will have the same values, or that two similar attributes will have the same attribute ID. For example, on the US site, Cassettes and PDAs both support an Condition attribute with ID 10244, but their condition values are different. Men's Jeans and Women's Shoes both support a Condition attribute with ID 94, but their condition values are different too.)

Figure 23-10 Graphical Presentation of the Event Type Attribute and Its Values

The fact that the Event Type attribute should be visually presented as a drop-down list is described in the characteristics list's presentation instructions (see PresentationInstruction Elements).

Note: The presentation instructions are primarily intended to work with the Item Specifics SYI XSL stylesheet. If you are not using the stylesheet, you can parse the presentation instructions yourself, but you should not hard-code the presentation instruction data in your application's code as the rules for presenting attributes can change. For example, an attribute that previously allowed a single value might start allowing multiple values, and vice versa.
Check for updates to the meta-data on a daily basis to assure you are in sync with eBay's current version. It is also a good idea to keep a backup of the last version of the meta-data that you downloaded, so that you can revert to the last version if necessary.

Table 23-3 describes the purpose of each element contained within an Attribute element.

Elements in the Item Specifics and Pre-filled Item Information models can specify XML attributes (not to be confused with item attributes). In the table below, the XML attributes (e.g., id) are described in bulleted lists within the "Meaning/Notes" column.

Table 23-7 The Attribute Model 
Element
Data Type
Meaning/Notes
Conditional.Attribute 
Container
An aspect or feature that is salient to items in a particular category. Only displayed when certain values are selected for other characteristics.
If a conditional characteristic is a child in a visibility (Type 4, Value-to-Attribute (VA)) dependency relationship, it is only valid for a listing when certain parent values are selected. See Characteristic Parent-Child Relationships (Dependencies).
  • id (integer): Unique identifier for the attribute within the characteristic set. See Summary of the Attributes Model for information about attribute IDs that need to be used in listing requests.
  • labelVisible (boolean): If True (1), the label is displayed.
Conditional attributes can specify most of the same elements as initial attributes (see Initial.Attribute), but they do not generally contain Dependency nodes.
Initial.Attribute 
Container
An individual characteristic that is common to all items within the same category.
  • id (integer): Identifier for the attribute. Unique within the characteristic set. Required as input when listing items.
  • isRequired (boolean): If true (1), the attribute is required for listing items in categories that are mapped to this characteristic set.
  • labelVisible (boolean): If true (1), the label is displayed. Applicable to child attributes.
  • dateFormat (string): The preferred sequence and format for date values. For example, M-d-Y implies that the month, date, and year are expected and the order should be month-day-year. See Date Characteristics. The month symbol is case-senstive:
  • M = Use the long form of the month (see GlobalSettings Element)
    m = Use the short form of the month (see GlobalSettings Element)
    Possible sequences are month-day-year (order may vary per site), month-year (or year-month), and year.
Note: The date separator (e.g., "-") is used internally by eBay and has no significance in the API. Also, the Tickets characteristic set does not use the standard date format described here. Instead, the year, month, and day are represented as separate attributes for Tickets.
  • pageLocation (string): The location where the attribute appears in the eBay Web site's Sell Your Item forms. If not specified, the default is the Item Specifics section. Typically, attributes with different page locations are presented to the user in separate locations within an application. For example, return policy attributes would be presented separately from Item Specifics. See Offering a Clear Return Policy.
  • Invisible (boolean): For internal use only. Applications can ignore this information.
  • parentAttrId (integer): Unique identifier for this attribute's parent attribute. Applicable for child attributes in Type 1 (VVC) and Type 2 (VVP) dependencies only. See Characteristic Parent-Child Relationships (Dependencies)
Initial.Attribute.CurrentTime 
Container
For internal use only. Applications can ignore this information.
Initial.Attribute.Dependency  
Container
The values (if any) to be presented for the specified child attribute (childAttrId) if the specified parent value (parentValueId) is selected. This list is defined within the meta-data of the parent characteristic. See Characteristic Parent-Child Relationships (Dependencies). Applications should also use this information (along with validation rules and other meta-data) to determine valid combinations of attributes and values before submitting Item Specifics data in AddItem requests.
  • count (integer): The quantity of Value nodes within the list.
  • childAttrId (integer): The ID of the child attribute (e.g., 37 for Event Type 2) whose values this dependency list can affect.
  • parentValueId (integer): The value ID in the parent attribute's ValueList (e.g., 1001 for "Concerts", in the Event Type attribute's value list) which will cause this dependency list to be used.
  • type (integer): The impact on the specified child attribute (see childAttrId) if the specified parentValueId is selected. Possible values:
  • 1 = Value-to-Value Client (VVC): The child's value list changes via client.
    2 = Value-to-Value Post (VVP): The child's value list changes via server post.
    3 = Value-to-Value Selective Post (VVSP): The child's value list changes via client or post.
    4 = Value-to-Attribute (VA): The child's visibility and listing validity changes.
    5 = Value-to-Meta (VM): The child's required status changes.
Initial.Attribute.Dependency.
Value 
Container
Available value for a child attribute. Most commonly used for type 1 (Value-to-Value) and type 2 ( Value-to-Value Post) dependencies. Container node for the value's display name. The order in which the Value nodes are returned is the order your application should use to present them to the user.
  • id (integer): Identifier for the value. When the user selects the attribute value, the application should store the ID to be used later in the AddItem call. Possible ID values:
  •  0= Any of the child attribute's values can be selected. Only applicable to type 4 (Value-to-Attribute) and type 5 (Value-to-Meta) dependencies.
    -6 = Other (user enters the value in an "Other" field)
    -10 = -- (display a dash)
    -12 = Other (user cannot enter a value)
    ID = An ID that is unique within the same characteristic set (e.g., 1001)
Note: For other-value text boxes, multi-select lists, and check boxes, multiple values can be associated with the same value ID. For example, -6 is not a unique value ID.
...Dependency.Value.
DisplayName 
string
An alternative display name that is used to specify the scaled quantity and unit of measure corresponding to Value.Name. For example, for Max Processor Speed, if Value.Name is 1500, Value.DisplayName would be 1.5 Ghz. The content of the DisplayName element can be returned as CDATA (i.e., <![CDATA[...]]>).
...Dependency.Value.Name 
string
The name of the value as it should be displayed to users. The content of the Name element can be returned as CDATA.
Initial.Attribute.EditType 
int
Indicates whether the attribute's value(s) is (are) editable (i.e., the user can select or enter a value). Possible values:
0 = Always user-selectable or user-definable
1 = Always pre-filled by eBay (read-only)
2 = May be pre-filled by eBay (conditionally editable)
If 2 and not pre-filled, the user can select or enter a value.
Child attributes can only be user-selectable (EditType 0 or 2). If AttributeSet.Attribute.source is 1 (pre-filled by eBay) or 3 (pre-filled by catalog) and the value of EditType is 1 or 2 (pre-filled), the attribute should be displayed as read-only.
Initial.Attribute.
DefaultUnitOfMeasureFormatS
tring 
string
A hint (e.g., "{0} Mhz") that indicates how an application can display an attribute whose values should be interpreted according units of measure (e.g., Max Processor Speed), where {0} is a placeholder for the quantity and the second value (Mhz) is the base unit. The quantity and units are scaled with respect to the default unit according to standard upper and lower bounds (e.g., 1500 Mhz is represented as 1.5 Ghz). The Value.Name element specifies the quantity in the default unit (e.g., 1500). The Value.DisplayName element specifies the scaled quantity and scaled unit (e.g., 1.5 Ghz). Usage of the default format string is optional. If you pass in "1500 Mhz" in the AddItem call (or related calls), eBay converts the value to "1.5 Ghz".
Initial.Attribute.HasGlossary 
boolean
For internal use. Not applicable to Sell Your Item use cases. Applications should ignore this element.
Initial.Attribute.HelpText 
string
Help text that can appear when the user's cursor hovers over the attribute (e.g., Alt text).
Initial.Attribute.Label 
string
Display name of the attribute. Corresponds to the label that usually appears above the attribute widget.
Initial.Attribute.
MessageBottom 
string
Message to display below the attribute widget.
Initial.Attribute.
MessageLeft 
string
Message to display to the left of the attribute widget.
Initial.Attribute.
MessageRight 
string
Message to display to the right of the attribute widget.
Initial.Attribute.MessageTop 
string
Message that should appear above the attribute.
Initial.Attribute.Type 
int
The attribute data type. (Not to be confused with EditType or Dependency.type) Possible values:
    1 = Numeric
    2 = String
    3 = Date
Initial.Attribute.ValueList 
Container
A list of one or more valid values that the user can select for the attribute. Applications should present all values to the user. See ValueList and Value Elements.
Contains a list of Value nodes, unless the attribute is a pre-filled EditType 1 or pre-filled EditType 2 attribute (see Determining Whether the User Can Choose an Attribute Value).
If the attribute is a child in a dependency, the Dependency node of the parent attribute specifies the values that can be used for the child attribute in the Sell Your Item flow. See Child Value List Dependencies (Types 1, 2, and 3: Value-to-Value).
If not present, there are no predefined values. In this case, specify a free-text value for the attribute in item-listing requests.
  • count (integer): The quantity of Value nodes within the list.
Initial.Attribute.ValueList.
Value 
Container
Available value for the attribute. Contains the values display name. The order in which the Value nodes are returned is the order your application should use to present them to the user.
  • id (integer): Identifier for the value. When the user selects the attribute value, the application should store the ID to be used later in the AddItem call. Possible ID values:
  • -6 = Other (user enters the value in an "Other" field)
    -10 = -- (display a dash)
    -12 = Other (user cannot enter a value)
    ID = Any other ID that is unique within the attribute (e.g., 1001)
Note: Other negative IDs returned by attribute meta-data calls can be handled and used as is. However, for your reference, here are some of the common negative value IDs.
    -13 = Yes, or the equivalent (optionally render as a checked box)
    -14 = No, or the equivalent (optionally render as an unchecked box)
    -15 = "Any" or "All"
    -16 = "Other Model" in US and CA Motors categories. In general, you need to use the category to specify the make and model instead.
...ValueList.Value.
DisplayName 
string
The name of the value as it should be displayed, if different from Value.Name. Often used to specify the scaled quantity and unit of measure corresponding to Value.Name. For example, for Max Processor Speed, if Value.Name is 1500, Value.DisplayName would be 1.5 Ghz. The content of the DisplayName element can be CDATA (i.e., <![CDATA[...]]>).
...ValueList.Value.Name 
string
The text name of the value. The content of the Name element can be CDATA.
Initial.Attribute.
ValidationRules 
Container
Contains rules describe how to validate the attribute's value(s), if applicable. For example, characteristics that accept user-entered text can include rules for validating the user's input against regular expressions and/or string length constraints. An attribute can have zero or more rules.
...ValidationRules.Rule 
Container
A rule for validating an attribute's value(s) selected or entered by the user. Contains the rule's name and list of zero (0) or more additional elements. Usually, a given rule contains no more than three elements, including Name. The list of applicable elements varies depending on the rule name.
See Validation Rules in the Attribute Meta-Data for information about specific rule names and how to interpret the rule data.
...ValidationRules.Rule.
Length 
int
The permitted length the value.
...ValidationRules.Rule.Mask 
string
A sequence of characters that must be included in the value.
...ValidationRules.Rule.Max 
int or double
The maximum value permitted. Some rules that contain a Max element also contain a Min element.
...ValidationRules.Rule.Min 
int or double
The minimum value permitted. Some rules that contain a Min element also contain a Max element.
...ValidationRules.Rule.Name 
string
A unique, descriptive name for the rule. Rule nodes always return a Name element. See Validation Rules in the Attribute Meta-Data for information about specific rule names and how to interpret the rule data.
...ValidationRules.Rule.
PeerAttributeId  
int
When two fields are used to represent a date range (e.g., for dates of stay in Travel categories), the 'from" date and "to" date are defined as separate attributes. In some cases, date validation rules may be specified on the "from" date attribute. In these cases, the PeerAttributeId contains the ID of the "to" date attribute.
...ValidationRules.Rule.
Precision 
int
For doubles, the scale (number of digits after the decimal) for the value. Only for display purposes (not for validation). This value may no longer be supported for some attribute sets.
...ValidationRules.Rule.Regex 
string
A regular expression that the value must match. Applicable to string data types.
...ValidationRules.Rule.
Required 
boolean
Indicates whether the attribute is required for listing the item. If the Required element is present (true), the attribute is required. If the element is not present (false), the attribute is not required.
...ValidationRules.Rule.
Separator 
string
Symbol used as a numeric values separator (e.g. "," in "1,000"). Not necessarily a period (.), space ( ), or comma (,). It could be any string.
Other.Attribute 
Container
An attribute that might need an "Other" entry based on the user's initial selections.
Contains the attribute label and additional meta-data.
  • id (integer): Unique identifier for the attribute within the characteristic set.
  • isRequired (boolean): If true (1), required for listing items in this category.
Other.Attribute.Label 
string
Display name of the attribute. Corresponds to the label that usually appears above the attribute widget.
Other.Attribute.MessageBottom 
string
Message to display below the attribute widget.
Other.Attribute.Required 
(boolean)
Indicates that a value must be specified for the attribute. If the element is present, it means the attribute is required. If the element is not present, the attribute is not required. (The boolean semantics are indicated by the presence/absence of the element, not by 0/1 values.)
The presence of this tag is usually interpreted to mean that the user should be notified that the field is required. For example, in an application with a graphical user interface, an asterisk (*) might be placed adjacent to the field.

Determining Whether the User Can Choose an Attribute Value

The Item Specifics SYI XSL stylesheet handles the logic described in this section. Therefore, the following information should mainly be of interest if you are not using the XSL stylesheet in your solution. See Attribute Error Handling

Sometimes GetAttributesCSCall or GetProductSellingPagesCall will return attributes or values that should not be presented to the user or that should not be treated as editable.

The EditType element indicates whether the attribute's value is read-only or whether the user can select or enter the characteristic's value (or values). Your application should correctly present such data as editable, read-only, or hidden, and update the editable state of the data for revise/relist requests according to the attribute's current EditType value.

A characteristic can have one of these edit types: