Product Add-ons
Product Add-ons is included with WooCommerce Appointments, allowing customers to customize their bookings with additional options, services, or time extensions.
Overview
Product Add-ons let you add customizable fields to appointment booking forms. Customers can select options that modify the appointment cost, duration, or collect additional information.
Common use cases:
- Add extra services (e.g., "Gift Wrap", "Deep Cleaning")
- Extend appointment duration (e.g., "Add 30 minutes")
- Collect customer preferences (e.g., "Oil Type", "Special Instructions")
- Request additional information (e.g., "Vehicle Details", "Medical History")
Field Types
Product Add-ons supports multiple field types:
Multiple Choice
- Dropdown — Single selection from a list
- Radio Buttons — Single selection with visible options
- Images — Visual selection with images for each option
- Set a default selection
- Each option can have its own price and duration
Checkboxes
- Multiple selections allowed
- Each checkbox can be pre-selected by default
- Individual pricing and duration per option
Text Fields
- Short Text — Single-line text input
- Long Text — Multi-line textarea
- Character length restrictions
- Placeholder text support
- Input validation (letters only, numbers only, email, etc.)
File Upload
- Allow customers to upload files
- Useful for documents, photos, or forms
- Can be required or optional
Customer Defined Price
- Let customers enter their own price
- Set minimum and maximum price limits
- Useful for tips, donations, or custom pricing
Quantity
- Quantity input field
- Pre-filled quantity option
- Minimum and maximum quantity limits
- Price can be quantity-based
Date Picker
- Calendar date selection
- Useful for scheduling related dates or deadlines
Heading
- Visual separator for organizing add-ons
- No customer input required
- Helps group related options
Setting Up Add-ons
Product-Level Add-ons
- Edit an appointable product
- Open the Add-ons tab
- Click Add field and select a field type
- Configure the field:
- Title — Field label shown to customers
- Title Format — Display as label, heading, or hide
- Description — Optional help text
- Required — Make the field mandatory
- Options — For multiple choice/checkbox fields, add options with prices


Global Add-ons
Create add-on groups that apply to multiple products:
- Go to Products → Add-ons
- Click Add Group
- Configure the group:
- Name — Group identifier
- Priority — Control display order when multiple groups apply
- Product Categories — Apply to specific categories or all products
- Add fields to the group (same field types as product add-ons)
Using Global Add-ons:
- Each product can enable/disable global add-ons
- Check "Use Global Add-Ons?" in the product's Add-ons tab
- Global add-ons appear alongside product-specific add-ons
Pricing Options
Price Types
When "Adjust price" is enabled, choose how pricing is calculated:
- Flat Fee — Fixed price regardless of quantity
- Quantity Based — Price multiplied by quantity selected
- Percentage Based — Percentage of product price (not available for appointable products)
Price Display
- Prices are shown next to options on the frontend
- Can be hidden from customers if needed
- Supports all WooCommerce currency formats
Duration Add-ons
Duration add-ons extend appointment length and are only available for appointable products.
Setting Up Duration
- Create an add-on field (typically Multiple Choice or Checkbox)
- Enable Adjust duration
- Choose duration calculation:
- Flat Time — Fixed duration regardless of quantity (e.g., always add 15 minutes)
- Quantity Based — Duration multiplied by quantity (e.g., 10 minutes × quantity)
- Enter the duration value in minutes
- Optionally hide the duration label from customers
How Duration Works
- The system checks availability for base appointment duration + selected add-on duration
- If a 60-minute appointment has a "Add 30 minutes" add-on selected, the system looks for a 90-minute slot
- Availability is validated in real-time as customers select options
- Multiple duration add-ons are cumulative
Example:
- Base appointment: 60 minutes
- Add-on 1 selected: +15 minutes
- Add-on 2 selected: +30 minutes
- Total duration: 105 minutes
Display Options
Title Format
Control how add-on titles appear:
- Label — Standard field label
- Heading — Larger heading style
- Hide — Hide the title completely
Display As (Multiple Choice)
- Dropdown — Compact select menu
- Radio Buttons — Visible options with radio buttons
- Images — Visual selection with option images
Restrictions & Validation
Text Field Restrictions
- Any Text — No restrictions
- Only Letters — Alphabetic characters only
- Only Numbers — Numeric characters only
- Only Letters and Numbers — Alphanumeric only
- Only Email Address — Valid email format required
Limits
- Character Length — Min/max for text fields
- Quantity Limits — Min/max for quantity fields
- Price Limits — Min/max for customer-defined price fields
Import & Export
Export Add-ons
- In the product Add-ons tab, click Export
- Copy the exported JSON data
- Save for backup or use in another product
Import Add-ons
- Click Import in the Add-ons tab
- Paste the exported JSON data
- Add-ons are imported with all settings preserved
Use cases:
- Copy add-ons between products
- Backup add-on configurations
- Share add-on setups across sites
Advanced Features
Default Selections
- Set default options for multiple choice fields
- Pre-select checkboxes
- Pre-fill quantity or price values
Placeholders
- Add placeholder text to text fields
- Guide customers on expected input format
Descriptions
- Add help text to any add-on field
- Explain options or provide additional context
Required Fields
- Make any field mandatory
- Customers must complete before booking
- Different labels: "Require selection", "Require input", "Require upload"
Best Practices
- Group Related Options — Use headings to organize related add-ons
- Clear Labels — Use descriptive titles that customers understand
- Price Transparency — Show prices clearly so customers know the cost
- Duration Clarity — For duration add-ons, explain how time is added
- Test Availability — Verify duration add-ons work correctly with your availability rules
- Use Global Add-ons — Create reusable add-on groups for common options across products
- Validate Input — Use restrictions to ensure data quality
Technical Notes
- Duration add-ons are only available for appointable products
- Percentage-based pricing is not available for appointable products
- Availability checking includes add-on duration in real-time
- Add-on data is stored with the appointment and order
- Export/import uses JSON format