---
schema_version: "1"
id: c95f014e0e8ddad5cd070bc85d075e7d03c1b82a22ebbb2238457be5bdc108aa
title: Attributes vs. Fields
collection: admin
version: current
locale: en-us
portal_url: https://docs.salesforce.com/admin/current/en-us/ind/264-0-0/comms_attributes_vs__fields.md
canonical_url: https://help.salesforce.com/s/articleView?id=ind.comms_attributes_vs__fields.htm&release=264.0.0&type=5
source_site: help.salesforce.com
content_type: documentation
content_hash: f624b680763d0c455fc46c6bdde4209e468dfe411ba46078742f180e5308dceb
description: When defining product properties, you can use attributes or fields. The choice depends on how you plan to implement property data during order capture.
products:
  - Communications
  - Media
  - Energy and Utilities
release: "264"
---
# Attributes vs. Fields

When defining product properties, you can use attributes or fields. The choice depends on how you plan to implement property data during order capture.

- _Attributes_: A list of all attributes and their associated Attribute Codes assigned to the Product2 Object.
    
    If a data element, such as a SKU number, is intended to be common to all products across your product catalog, then you should create a new field on your product object. Typically, adding new fields requires Salesforce system admin privileges.
- _Fields_: A list of all fields and their associated Field API name for the Product2 Object.
    
    If the data element is intended to be specific to a product, or class of products, then you should create an attribute, such as download speed. At runtime, attributes are visible to customers in Industries Cart and can be used to filter the catalog and provide configuration capabilities. Adding attributes requires access to the Product Console.

The fundamental differences between fields and attributes are:

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small ">
      <colgroup>
        <col>
        <col>
        <col>
      </colgroup>
      <thead class="slds-text-title_caps ">
        <tr class="">
          <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d399755e61">&nbsp;</th>
          <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d399755e63">
            <p style="margin-bottom:0;">Fields</p>
          </th>
          <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d399755e69">
            <p style="margin-bottom:0;">Attributes</p>
          </th>
        </tr>
      </thead>
      <tbody>
        <tr class="">
          <td data-label="" class="slds-cell-wrap" style="vertical-align:top;" headers="d399755e61 ">
            <p style="margin-bottom:0;">Where the value is created?</p>
          </td>

          <td data-label="Fields" class="slds-cell-wrap" style="vertical-align:top;" headers="d399755e63 ">
            <p>Created in Salesforce Setup on a Salesforce
              object.</p>
            <p style="margin-bottom:0;">Field example:
              Orderable.</p>
          </td>

          <td data-label="Attributes" class="slds-cell-wrap" style="vertical-align:top;" headers="d399755e69 ">
            <p>In attribute/category
              interface.</p>
            <p style="margin-bottom:0;">Attribute example: Color.</p>
          </td>

        </tr>
        <tr class="">
          <td data-label="" class="slds-cell-wrap" style="vertical-align:top;" headers="d399755e61 ">
            <p style="margin-bottom:0;">Where the value is stored (including metadata, such as default
              value, picklist, etc.)?</p>
          </td>

          <td data-label="Fields" class="slds-cell-wrap" style="vertical-align:top;" headers="d399755e63 ">
            <p style="margin-bottom:0;">Each field value is stored in a separate Salesforce field. Related
              metadata is stored separately in Salesforce. For example, if you create
              15 fields, there will be 15 field records in Salesforce and each record
              will store its value.</p>
          </td>

          <td data-label="Attributes" class="slds-cell-wrap" style="vertical-align:top;" headers="d399755e69 ">
            <p style="margin-bottom:0;">Each attribute value and its’ metadata (including picklists,
              default value, etc.) is stored in a JSON blob (i.e. in a FIELD in JSON).
              For example, if you create 15 attributes, all 15 attributes and all
              their metadata will be stored in one JSON blob which is stored in one
              Salesforce field.</p>
          </td>

        </tr>
        <tr class="">
          <td data-label="" class="slds-cell-wrap" style="vertical-align:top;" headers="d399755e61 ">
            <p style="margin-bottom:0;">Who can create?</p>
          </td>

          <td data-label="Fields" class="slds-cell-wrap" style="vertical-align:top;" headers="d399755e63 ">
            <p style="margin-bottom:0;">Requires Salesforce System Administrator privileges.</p>
          </td>

          <td data-label="Attributes" class="slds-cell-wrap" style="vertical-align:top;" headers="d399755e69 ">
            <p style="margin-bottom:0;">A Product Manager with sufficient privileges.</p>
          </td>

        </tr>
        <tr class="">
          <td data-label="" class="slds-cell-wrap" style="vertical-align:top;" headers="d399755e61 ">
            <p style="margin-bottom:0;">Is searchable at runtime?</p>
          </td>

          <td data-label="Fields" class="slds-cell-wrap" style="vertical-align:top;" headers="d399755e63 ">
            <p style="margin-bottom:0;">Each field is stored in a separate Salesforce database field and
              is easily searchable.</p>
          </td>

          <td data-label="Attributes" class="slds-cell-wrap" style="vertical-align:top;" headers="d399755e69 ">
            <p style="margin-bottom:0;">Since all attribute data is stored in one JSON blob, expect
              performance implications when using search.</p>
          </td>

        </tr>
        <tr class="">
          <td data-label="" class="slds-cell-wrap" style="vertical-align:top;" headers="d399755e61 ">
            <p style="margin-bottom:0;">When to use at design-time to define Product2
              properties</p>
          </td>

          <td data-label="Fields" class="slds-cell-wrap" style="vertical-align:top;" headers="d399755e63 ">
            <p style="margin-bottom:0;">Use for commonly used properties that are searchable and runtime
              (order time) configurable.</p>
          </td>

          <td data-label="Attributes" class="slds-cell-wrap" style="vertical-align:top;" headers="d399755e69 ">
            <p style="margin-bottom:0;">Use for properties that are sparely used.</p>
          </td>

        </tr>
        <tr class="">
          <td data-label="" class="slds-cell-wrap" style="vertical-align:top;" headers="d399755e61 ">
            <p style="margin-bottom:0;">When to use at runtime to define asset properties</p>
          </td>

          <td data-label="Fields" class="slds-cell-wrap" style="vertical-align:top;" headers="d399755e63 ">
            <p style="margin-bottom:0;">Do not use.</p>
          </td>

          <td data-label="Attributes" class="slds-cell-wrap" style="vertical-align:top;" headers="d399755e69 ">
            <p style="margin-bottom:0;">Use attributes only. For example, IMEI number, VIN #,
              etc.</p>
          </td>

        </tr>
      </tbody>
    </table>