Product Attributes
Attributes are reusable pieces of metadata that describe your products. Use them to track details like brand, material, country of origin, or any other field you need on every product.
What attributes are for
An attribute is a description of a product, not a variant of it. Brand is a good example. A coffee mug has one brand, a t-shirt has one brand. The brand does not change from one version of the product to another. Material, care instructions, weight, and country of origin all work the same way.
Once you create an attribute, it becomes available on every product in the catalog. Filling it in is optional per product, but the field is there for you and your imports to use consistently.
Attributes versus product options
The line between attributes and product options trips people up, so it is worth being explicit.
- Attributes describe a single product. They do not create variants. A mug with the attribute "Brand: Kitty Co" is still one product.
- Product options create variants. A t-shirt with size and color options is actually many products, one per size and color combination.
If the value changes the item you ship, it is an option. If the value just tells the customer something about the item, it is an attribute. Color can go either way. If you sell the same shirt in red and blue, color is an option. If you sell one mug that happens to be blue, color is an attribute.
Attribute types
The type determines what kind of value the attribute holds and how the form input looks on the product edit page.
Text
A single-line text input. Use it for short values like a brand name or a model number.
Textarea
A multi-line text input. Use it for longer text like care instructions or warranty language.
Checkbox
A yes or no value. Use it for flags like "giftable" or "fragile".
Integer
A whole number. Use it for counts like pieces per set or thread count.
Float
A decimal number. Use it for measurements like weight or volume.
Date
A calendar date. Use it for release dates, expiration dates, or manufacture dates.
Date Time
A date and time. Use it when you need precision beyond the day.
Select
A single-choice dropdown backed by a list of values you define. Use it when the attribute should always be one of a known set, like a fixed list of brands you carry.
Attribute fields
Code
A unique identifier for the attribute. Used internally, in imports, and in the API. Keep it lowercase and consistent. brand, material, country_of_origin.
Name
The human-readable label shown on forms and in the catalog. This is what you and your team see when editing products.
Type
The attribute type, chosen from the list above. You set this when creating the attribute and it cannot be changed later without deleting and recreating it.
Translatable
Whether the value of this attribute can differ per locale. Turn this on for anything shown to a customer that should be localized, like care instructions. Turn it off for internal or factual values like a SKU prefix.
Required
Whether the attribute must be filled in on every product. Required attributes will block product saves until a value is provided.
Position
Controls the display order on product edit forms. Attributes with higher positions appear first.
How attributes are used
Attributes show up on the product edit form and in the API. During imports, plugins can map channel-specific fields onto your attributes, for example mapping Shopify's vendor field to your brand attribute. During exports, the reverse happens. Attributes are also available in reports and filters, so a field you define once becomes a way to slice your entire catalog.
Plan your attributes early. It is much easier to set up brand and material on day one than it is to backfill them across thousands of products later.