docs/admin-interface/overview/options.md
Product options in OpenCart 4 allow you to create customizable products with different choices for customers. Options enable you to offer variations like sizes, colors, materials, and customizations without creating separate product entries.
{% embed url="https://youtu.be/5eI_tx4kA1s" %}
Video: Option Management in OpenCart
OpenCart 4 supports multiple option types to accommodate different product scenarios:
| Option Type | Description | Best For | Required | Multiple Selections |
|---|---|---|---|---|
| Select | Dropdown menu with choices | Sizes, colors, simple choices | Yes/No | No |
| Radio | Single selection from options | Exclusive choices, required options | Yes/No | No |
| Checkbox | Multiple selections allowed | Add-ons, optional features | No | Yes |
| Text | Single line text input | Custom text, personalization | Yes/No | No |
| Textarea | Multi-line text input | Custom messages, detailed instructions | Yes/No | No |
| File | File upload | Custom designs, documents | Yes/No | No |
| Date | Date selection | Event dates, delivery dates | Yes/No | No |
| Time | Time selection | Appointment times, delivery windows | Yes/No | No |
| Date & Time | Combined date/time selection | Event scheduling, appointments | Yes/No | No |
{% stepper %} {% step %}
{% hint style="info" %} Quick Access: Options can also be created directly from the product form Option tab, but using the dedicated Options section provides better organization and reusability. {% endhint %} {% endstep %}
{% step %}
Basic Information
| Field | Description | Required | Example |
|---|---|---|---|
| Option Name | Descriptive name for the option | Yes | "Size", "Color", "Material" |
| Type | Select appropriate option type | Yes | Select, Radio, Checkbox, etc. |
| Sort Order | Control display order in lists | No | 1, 2, 3 |
{% hint style="success" %} Configuration Tip: Create reusable options that can be assigned to multiple products for consistent customer experience. {% endhint %} {% endstep %}
{% step %}
Option Values Configuration
| Value Field | Description | Required | Example |
|---|---|---|---|
| Option Value | Specific choice name | Yes | "Small", "Red", "Premium" |
| Price Adjustment | Additional cost for this value | No | +$5.00, +10%, -$2.00 |
| Weight Adjustment | Shipping weight change | No | +0.2kg, -0.1kg |
| Reward Points | Loyalty points awarded | No | +100, -50 |
{% hint style="warning" %} Important: Options must be assigned to products to appear on storefront. Creating options alone doesn't make them visible to customers. {% endhint %} {% endstep %} {% endstepper %}
Configure different pricing for option values to reflect additional costs or discounts:
| Adjustment Type | Description | Use Case | Example |
|---|---|---|---|
| Fixed Amount | Add/subtract fixed amount | Standard price differences | Large (+$2.00), Premium (+$5.00) |
| No Change | Keep base product price | No additional cost | Standard color, Basic model |
Price Adjustment Examples
Clothing Store:
Electronics Store:
Set different weights for accurate shipping calculations:
| Adjustment Type | Description | Use Case | Example |
|---|---|---|---|
| Add Weight | Increase shipping weight | Heavier materials, larger sizes | +0.5kg, +1.2lb |
| Subtract Weight | Decrease shipping weight | Lighter alternatives | -0.2kg, -0.5lb |
| No Change | Keep base product weight | Standard options | No adjustment |
Weight Adjustment Examples
Furniture Store:
Food Store:
{% hint style="warning" %} Shipping Accuracy: Accurate weight adjustments ensure correct shipping costs and prevent losses from undercharging. {% endhint %}
</details> <details> <summary><strong>Reward Points</strong></summary>Configure different reward points to incentivize specific options:
| Adjustment Type | Description | Use Case | Example |
|---|---|---|---|
| Add Points | Award extra points | Premium options, promotions | +100, +250 |
| Subtract Points | Reduce points awarded | Economy options | -50, -100 |
| No Change | Use base product points | Standard options | No adjustment |
Reward Points Examples
Premium Products:
Promotional Items:
{% hint style="success" %} Customer Engagement: Use reward points strategically to encourage upgrades and premium choices. {% endhint %}
</details>{% hint style="info" %} Option Organization
{% hint style="warning" %} Performance Considerations
{% hint style="success" %} Customer Experience
{% stepper %} {% step %}
Configuration:
Implementation:
{% hint style="info" %} Size Strategy: Use consistent sizing across all clothing products for better customer experience. {% endhint %} {% endstep %}
{% step %}
Configuration:
Implementation:
{% hint style="success" %} Color Management: Use descriptive color names that customers understand easily. {% endhint %} {% endstep %}
{% step %}
Configuration:
Implementation:
{% hint style="warning" %} Price Transparency: Clearly communicate material cost differences to customers. {% endhint %} {% endstep %}
{% step %}
Assignment Process:
Resulting Variants:
{% step %}
Quality Assurance:
Customer Experience:
Diagnostic Steps:
Quick Fixes:
{% hint style="info" %} Quick Check: Go to Catalog → Options and verify the option exists and is enabled. Then check the product's Option tab to confirm assignment. {% endhint %}
</details> <details> <summary><strong>Price Calculations Incorrect</strong></summary>Diagnostic Steps:
Common Issues:
{% hint style="warning" %} Price Testing: Always test option combinations to verify total price calculations match expectations. {% endhint %}
</details> <details> <summary><strong>Performance Issues</strong></summary>Performance Optimization:
Performance Guidelines:
{% hint style="success" %} Performance Tip: For products with many variations, use the product variants feature instead of multiple options. {% endhint %}
</details> <details> <summary><strong>Option Validation Issues</strong></summary>Diagnostic Steps:
Quick Solutions:
{% hint style="warning" %} Theme Compatibility: Some custom themes may not properly handle required option validation. Test with the default theme first. {% endhint %}
</details>