> ## Documentation Index
> Fetch the complete documentation index at: https://docs.elasticfunnels.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Custom Product Attributes (Legacy)

> Add unstructured key/value metadata to products — legacy system, see Product Attributes for the typed replacement

> **Note:** Custom Attributes are a legacy system for unstructured key/value pairs. For typed, reusable, filterable attributes, use [Product Attributes](/products/product-attributes) instead. Both systems can coexist on the same product.

Custom attributes let you store arbitrary key/value metadata on a product (e.g., a bonus download URL, warranty info, or an affiliate-specific value) without needing a formal attribute definition.

## Create Custom Attributes

### Step 1: Add Attributes to Product

1. In "Products," select or create the product
2. Click the **Custom Attributes** tab
3. Add a new key/value pair (e.g., `bonus_url` → `https://yourbonuslink`)
4. Save your changes

### Step 2: Use in Page Builder

1. Add a "Product Item" component to your page
2. In the properties tab, configure fields such as Product Type and Classification (e.g., Bonus)
3. To display attributes, add text or links using `{product.attributes.[attribute_name]}`, e.g., `{product.attributes.bonus_url}`

## Common Attribute Types

### Bonus Content

* **bonus\_url**: Link to bonus materials
* **bonus\_description**: Description of bonus content
* **bonus\_value**: Monetary value of bonuses

### Product Details

* **warranty\_period**: Product warranty information
* **shipping\_weight**: For shipping calculations
* **dimensions**: Product size specifications
* **color\_options**: Available color variants

### Marketing Data

* **launch\_date**: When product was released
* **bestseller\_rank**: Ranking information
* **testimonial\_count**: Number of reviews/testimonials
* **guarantee\_terms**: Money-back guarantee details

## Display Attributes on Pages

### Text Display

```
Bonus Value: {product.attributes.bonus_value}
```

### Link Display

```html theme={null}
<a href="{product.attributes.bonus_url}">Download Your Bonus</a>
```

### Conditional Display

Show attributes only if they exist:

```
{if product.attributes.warranty_period}
  Warranty: {product.attributes.warranty_period}
{endif}
```

## Advanced Use Cases

### Dynamic Pricing

* Store different price points for different audiences
* Show member vs. non-member pricing
* Regional pricing variations

### Affiliate-Specific Content

* Custom bonuses per affiliate
* Affiliate-specific landing page content
* Tracking codes and parameters

### Seasonal Promotions

* Holiday-specific offers
* Limited-time bonus content
* Seasonal product variations

## Best Practices

### Naming Conventions

* Use descriptive, consistent attribute names
* Avoid spaces (use underscores: `bonus_url` not `bonus url`)
* Keep names lowercase for consistency

### Data Management

* Regularly audit and clean up unused attributes
* Document what each attribute is used for
* Maintain consistency across similar products

### Performance Considerations

* Don't create excessive attributes for single products
* Use attributes efficiently to avoid page slowdowns
* Cache frequently accessed attribute data

## Troubleshooting

### Common Issues

* **Attribute not displaying**: Check spelling and syntax
* **Broken links**: Verify URLs in attribute values
* **Missing data**: Ensure attributes are saved to the product
* **Formatting problems**: Check for special characters in attribute values
