Catalog
Attributes

Attributes

Attributes define the choices customers make when ordering a product—materials, finishes, edge profiles, hardware, glass styles, and any other selectable option. Most attributes are tables of selectable options, but an attribute can also collect free text from the customer or display a read-only note.

Overview

Attributes are organized into tables with customizable columns. In the most common setup, each row represents one option the customer can select.

Example: Material Attribute

NamePriceThicknessWeight
Cherry$253/40.8
Maple$303/40.5
Walnut$355/41.2

When a customer selects "Cherry," your pricing and parts formulas can reference material.price (25), material.thickness (0.75), or material.weight (0.8).

Tip: Already have your attributes in a spreadsheet or PDF catalog? You can let the AI Product Builder read them and build the attribute tables (and even a starting pricing formula) for you, instead of typing each row by hand. See AI Product Builder.


Input Types

Each attribute has an Input Type that controls how it behaves on the order form. Open an attribute's Table Settings and choose:

Input TypeBehavior
DropdownThe classic selectable options table—the customer picks one row (e.g., a material or finish). This is the default and the most common type.
Text InputThe customer types free text (e.g., engraving text or a special note) instead of choosing from a list.
DescriptionA read-only note or description block shown inline among the other attributes. The customer doesn't select anything—use it to explain a group of options or add guidance.

Only Dropdown attributes use the rows/options table below. Text Input and Description attributes don't need option rows.


Creating an Attribute

Step 1: Open Product Attributes

Navigate to your product and click the Attributes tab.

Step 2: Add Attribute

Click the "+" icon to create a new attribute.

Step 3: Define Structure

FieldDescription
Attribute NameThe label shown to customers (e.g., "Material", "Edge Profile")
Input TypeDropdown, Text Input, or Description (see Input Types above)
Table HeadersThe data columns for this attribute (e.g., "Price", "Thickness") — Dropdown attributes only

Note: The "Name" column is automatically included for Dropdown attributes—you don't need to add it.

Step 4: Choose Data Types

For each column, select the appropriate data type (see Data Types below).

Step 5: Add Rows

After saving the structure, add rows to a Dropdown attribute's table. Each row represents one selectable option.


Data Types

Each column in your attribute table needs a data type:

TypeDescriptionExample
PriceCurrency value$25.00
FractionFractional measurement3/4, 1 1/2
DecimalDecimal number0.75, 1.5
IntegerWhole number1, 2, 10
DescriptionText value"Standard finish"
BooleanYes/No toggleYes, No
ListDropdown selectionSelect from predefined options
BlockEmpty spacer(Visual separator)

Choosing the Right Type

  • Price for costs and upcharges
  • Fraction for dimensions that customers see (3/4", 1 1/2")
  • Decimal for calculations (thickness in formulas)
  • Description for text information
  • Boolean for yes/no features

Using Attributes in Formulas

Attributes are referenced in Pricing, Parts, and Inventory formulas. They're consumed by the step-based Formula Builder and the AI Pricing Assistant—not a code editor.

Reference Format

attribute_name.column_name

Examples

ReferenceReturns
material.priceSelected material's price value
material.thicknessSelected material's thickness
edge.upchargeSelected edge option's upcharge
hardware.nameSelected hardware option's name

In the Formula Builder

  1. Click "Add Step"
  2. Select "Field" as the operand type
  3. Choose the attribute from the dropdown
  4. Select the column/property

In a Pricing Formula

In the Formula Builder, attribute fields combine with measurements and operators to build a price. For example, to charge for area at the selected material's price plus the selected edge's upcharge, you'd add steps that reference material.price and edge.upcharge alongside a Square Feet measurement—no code required.

Prefer to describe it in plain English? Open Product → Pricing → "AI Assistant" and type something like "charge material price per square foot plus the edge upcharge." The AI Pricing Assistant builds the step-based formula for you, which you can accept, revise, or open in the Formula Builder.


Attribute Behaviors

Beyond the basic options table, each attribute has settings (in Table Settings) that control when it shows and how it behaves across line items.

Conditional Visibility

Show or hide an attribute based on another field or attribute selection. For example, hide the glass-style attribute unless a glass door style is chosen. Configure this in the Conditional Visibility section.

Match Across Items

Turn on Match across items to force the same selection across every line item on an order—useful when the whole order must use one wood species or one finish. You can mark specific options as exempt so they're always allowed even when the lock is on.

Single Use Part

Enable Single Use Part to keep an attribute from carrying onto newly added line items (it stays disabled on new items).

Pre-fill on New Item

Enable Pre-fill on New Item to automatically copy the current selection onto each new line item, so customers don't have to re-pick a common choice.

Document Visibility

Control which printed/exported documents an attribute appears on with per-document flags:

  • Show on Invoice
  • Show on Quote
  • Show on Acknowledgement
  • Show on Cut Sheet
  • Show on Packing Slip

Use these to keep internal-only details (like a part number) off customer-facing documents while still showing them on the cut sheet.


CSV Import/Export

Speed up attribute setup with CSV files. (You can also generate attributes from spreadsheets, PDFs, and photos with the AI Product Builder—CSV import remains available for precise, manual control.)

Exporting Attributes

  1. Open the attribute you want to export
  2. Click the "Export CSV" button
  3. Save the file for backup or editing

Importing Attributes

  1. Prepare a CSV with headers matching your attribute structure
  2. Click "Import CSV"
  3. Select your file
  4. Review and confirm the import

CSV Format

Your CSV should have:

  • First row: Column headers (must match attribute columns)
  • Subsequent rows: Option values

Example:

Name,Price,Thickness,Weight
Cherry,25,0.75,0.8
Maple,30,0.75,0.5
Walnut,35,1.25,1.2

Common Attributes

Here are common attributes for woodworking products:

Materials

ColumnTypePurpose
NameTextMaterial name
PricePriceCost per unit
ThicknessDecimal/FractionStock thickness
DensityDecimalFor weight calculations

Edge Profiles

ColumnTypePurpose
NameTextProfile name
PricePricePrice per linear foot
ImageDescriptionReference image path

Designs/Styles

ColumnTypePurpose
NameTextDesign name
PricePriceAdditional cost
Stile WidthDecimalFrame dimension
Rail WidthDecimalFrame dimension

Finishes

ColumnTypePurpose
NameTextFinish name
PricePricePrice per unit
Lead TimeIntegerAdditional days

Parts Data for Visual Part Builder

Attribute columns can be referenced as "parts" data in the Parts & Pieces configuration and Visual Part Builder. This is what makes automatic part calculations possible.

How It Works

When you add columns like thickness, stile_width, or rail_width to an attribute, these values become available for field mapping using dot notation:

AttributeName.column_name → Value

Setting Up Parts Columns

Example: Material Attribute with Parts Data

NamePricethicknessdensityweight_factor
Cherry$250.75352.1
Maple$300.75442.4
Walnut$350.75382.2

These columns can be referenced as:

  • Material.thickness → 0.75 (for Cherry)
  • Material.density → 35 (for Cherry)
  • Material.weight_factor → 2.1 (for Cherry)

Example: Design Attribute with Frame Dimensions

NamePricestile_widthrail_widthpanel_reveal
Shaker$02.252.250.125
Mission$152.52.50.125
Craftsman$253.03.00.1875

These columns can be referenced as:

  • Design.stile_width → 2.25 (for Shaker)
  • Design.rail_width → 2.25 (for Shaker)
  • Design.panel_reveal → 0.125 (for Shaker)

Using Parts Data in Visual Part Builder

In the Visual Part Builder configuration:

  1. Open your product → Parts tab
  2. Select "Use Visual Templates"
  3. For each dimension field, map to attribute columns:
Builder FieldMappingSource
ThicknessMaterial.thicknessMaterial attribute
Stile WidthDesign.stile_widthDesign attribute
Rail WidthDesign.rail_widthDesign attribute
Lip/RevealDesign.panel_revealDesign attribute

Benefits of Parts Data

  1. Define once, use everywhere — Stile widths, thicknesses defined on attributes apply to all products using them
  2. Automatic calculations — Visual Part Builder computes stile lengths, panel sizes automatically
  3. Consistent cut sheets — Production documents always reflect the correct values
  4. Easy maintenance — Update an attribute, and all products get the new values

Best Practice: Parts Column Naming

Use lowercase, snake_case names for parts columns that will be referenced in formulas:

GoodAvoid
thicknessThickness
stile_widthStile Width
rail_widthRail Width
panel_revealPanel Reveal

This ensures consistent referencing in formulas and field mappings.


Attribute Layout

Control how attributes appear in the order form:

Display Order

Drag and drop attributes to reorder them in the customer-facing form.

Grouping

Group related attributes together for a cleaner interface.

Required vs. Optional

Mark attributes as required to ensure customers make a selection.


Best Practices

Naming

  • Use clear, customer-friendly names
  • Be consistent across products
  • Avoid abbreviations in customer-facing names

Structure

  • Keep attribute tables focused (one concept per attribute)
  • Use appropriate data types for calculations
  • Include all values needed for formulas
  • Use Description input-type attributes to add inline guidance without a separate line item

Maintenance

  • Review and update prices regularly
  • Archive discontinued options rather than deleting
  • Use CSV export for backups

Troubleshooting

Attribute Not Appearing in Formulas

  • Verify the attribute is saved
  • Check that column names are lowercase in formula references
  • Refresh the formula builder
  • Confirm the attribute's Input Type is Dropdown (Text Input and Description attributes don't expose selectable column values)

Attribute Not Showing on the Order Form

  • Check the Conditional Visibility rule—the attribute may be hidden until another selection is made
  • Confirm it isn't marked Single Use Part if you expected it on a newly added line item

Import Errors

  • Ensure CSV headers match exactly
  • Check for special characters in values
  • Verify data types match (numbers vs. text)

Calculation Issues

  • Confirm the correct column is referenced
  • Check for null/empty values in attribute rows
  • Test with known values

Next Steps