Catalog
Parts

Parts

Parts define the individual components that make up your products. Once defined, parts are used for both shipping calculations (packaging and rate optimization) and production documents (build sheets).

Overview

TimberCloud Storefront — Product Catalog

When you configure parts for a product, TimberCloud uses them to:

  • Calculate Shipping - Each part's dimensions and weight feed into the smart packaging algorithm
  • Generate Build Sheets - Parts become rows in your production documents
  • Optimize Packaging - Parts can ship assembled or as separate components

The Key Question

Parts configuration answers: What are the physical components of your product, and how should they be handled?

A cabinet door might have stiles, rails, and a panel. A dining table might have a tabletop, legs, and an apron. Defining these parts enables accurate shipping quotes and detailed production documents.


Creating Parts

Adding a New Part

  1. Navigate to your product
  2. Open the Parts or Shipping tab
  3. Click the "+" icon to add a part
  4. Configure the part properties

Part Properties

PropertyDescriptionExample
NameDescriptive part name"Stile", "Rail", "Panel", "Tabletop"
QuantityNumber per product2 stiles per door, 4 legs per table
DimensionsWidth, length, heightStatic values or calculated formulas
WeightPart weightAuto, fixed, field-based, or calculated
Show on CutsheetInclude in production documentsYes/No
Package SeparatelyShip in its own packageYes/No (for fragile items)
StackableCan be stacked during shippingYes/No

Ships Assembled Toggle

This critical setting determines how your product ships:

Ships Assembled = ON (Default)

  • Product ships as a single unit
  • Overall product dimensions used for packaging
  • Parts still appear in build sheets for production
  • Best for: finished goods, assembled furniture, completed items

Ships Assembled = OFF

  • Product ships as separate pieces
  • Each part is packaged individually by the algorithm
  • Parts with "Package Separately" get their own boxes
  • Best for: large furniture, kits, unassembled products

Dimension Configuration

Part dimensions can be set three ways:

Fixed Values

Fixed dimensions for parts that never change:

Width: 2.25
Length: 36
Height: 0.75

Field Mapping

Map to line item fields or product attributes for dynamic sizing:

Width: width (from line item)
Length: height (from line item)
Height: Material.thickness (from attribute)

Calculated (Calc)

Use formulas to combine fields with operations:

Width: design.stile_width + edge.lip_factor
Length: height - (rail_width * 2)
Height: material.thickness

Shaker Door Example

PartQtyWidth FormulaLength Formula
Stile2design.stile_widthheight + edge.lip_factor
Rail2design.rail_widthwidth - (stile_width * 2)
Panel1width - 5height - 5

Pieces Field Mapping

The Pieces configuration allows you to map part dimensions directly from product attributes and line item fields. This is what makes the Parts system so powerful — define specifications once on your product options, then reference them automatically in parts calculations.

Why This Saves Time: Without field mapping, you'd manually enter formulas for every part dimension. With field mapping, set up attribute parts once (Material.thickness, Design.stile_width) and all products using those attributes automatically get correct values. New product setup takes minutes instead of hours.

How Field Mapping Works

Instead of entering static values for every part dimension, you can map fields using dot notation:

AttributeName.part_name → Value

Example: A "Material" attribute with parts like thickness, density, and weight_per_sqft can be referenced as:

  • Material.thickness → 0.75
  • Material.density → 45
  • Material.weight_per_sqft → 2.5

Setting Up Attribute Parts

First, define parts data on your product attributes:

  1. Go to Catalog → Attributes (or Settings → Products → Attributes)
  2. Edit an attribute (e.g., "Material", "Design", "Edge Profile")
  3. In the Parts section, add value fields:
AttributePart NameExample Values
Materialthickness0.75", 1", 1.5" per option
MaterialdensityVaries by wood species
Designstile_width2.25", 2.5", 3" per style
Designrail_width2.25", 2.5", 3" per style
Edgelip_factorEdge treatment offset
  1. For each product option under that attribute, enter the specific values

Using Field Mappings in Parts

In the Parts/Pieces configuration:

  1. Navigate to your product → Parts tab
  2. For any dimension field (Width, Length, Height), click the dropdown
  3. Available fields are grouped:
    • Line Items — Direct line item fields (width, height, depth, etc.)
    • Product Options — Attribute parts using Attribute.part notation

Field Mapping Examples

Door Stile Part:

PropertyMappingDescription
Name"Stile"Static text
WidthDesign.stile_widthFrom Design attribute
LengthheightFrom line item height
ThicknessMaterial.thicknessFrom Material attribute

Cabinet Side Part:

PropertyMappingDescription
Name"Side Panel"Static text
WidthdepthFrom line item
LengthheightFrom line item
ThicknessMaterial.thicknessFrom attribute

Accessing the Selected Option Name

To reference which option is selected (not its parts data), use the .name suffix:

Material.name → "Cherry"
Design.name → "Shaker"

This is useful for displaying the material or style name on build sheets.


Visual Part Builder Integration

The Pieces field mapping connects directly to the Visual Part Builder, enabling automatic part calculations for doors, cabinets, and boxes.

Enabling Visual Templates

  1. Navigate to your product → Parts tab
  2. Select "Use Visual Templates" mode
  3. Choose a layout type (Door, Cabinet, Drawer Box, etc.)
  4. Map dimension fields from your product

Field Mapping for Visual Builder

The Visual Part Builder uses the same field mapping system:

Builder FieldCommon Mapping
Frame Widthwidth (line item)
Frame Heightheight (line item)
Depthdepth (line item)
ThicknessMaterial.thickness (attribute)
Stile WidthDesign.stile_width (attribute)
Rail WidthDesign.rail_width (attribute)

Why This Matters

With Pieces field mapping + Visual Part Builder:

  1. Define once — Set up stile widths, rail widths, thicknesses on attributes
  2. Reuse everywhere — All products using those attributes get correct values
  3. Visual verification — See real-time 2D/3D previews with actual dimensions
  4. Automatic cut sheets — Parts flow directly to production documents
  5. Accurate shipping — Part dimensions feed packaging calculations

Example: Shaker Door Configuration

Step 1: Define Attribute Parts

Design Attribute:

Optionstile_widthrail_width
Shaker2.252.25
Mission2.52.5
Craftsman3.03.0

Material Attribute:

Optionthicknessdensity
Maple0.7544
Cherry0.7535
Walnut0.7538

Step 2: Map in Visual Builder

Builder FieldMapping
Frame Widthwidth
Frame Heightheight
Stile WidthDesign.stile_width
Rail WidthDesign.rail_width
ThicknessMaterial.thickness

Step 3: Result

When a customer orders a 24" × 36" Shaker door in Cherry:

  • Stiles: 2.25" × 36" × 0.75"
  • Rails: 2.25" × 19.5" × 0.75"
  • Panel: 19" × 31" × 0.25"

All calculated automatically from the field mappings!


Visual Part Builder Layout Types

For doors, cabinets, and other complex products, the Visual Part Builder provides 12 layout types:

2D Door Types

  • Door / Window — Traditional frame-and-panel
  • Miter Door — 45° mitered corners
  • M&T Door — Mortise & Tenon joinery
  • Face Frame — Stiles and rails only

2D Panel Types

  • Flat Panel — Simple single panel
  • Floating Shelf — Shelf with mounting cleat
  • Lumber — Linear board/lumber

3D Box Types

  • Cabinet — Sides, top, bottom, back, shelves
  • Drawer Box — Front, back, sides, bottom
  • Bookshelf — Standing bookshelf
  • Open Box — Open storage cubbies
  • Chest — Blanket box with lid

The Visual Part Builder is ideal for:

  • Cabinet doors with stiles, rails, and panels
  • Cabinet boxes with configurable components
  • Drawer boxes with standard construction
  • Any product with predictable part relationships

Learn more about Visual Part Builder →


Weight Configuration

Each part can have its weight configured using one of four modes:

ModeDescriptionBest For
AutoCalculated from freight class + dimensionsProducts with consistent density
FixedStatic weight value (lbs, oz, kg)Simple parts with known weight
FieldMaps to a product attribute fieldVariable weights by material
CalcCustom formula calculationComplex weight requirements

Auto Mode (Default)

Uses the product's freight class to determine density, then calculates weight from part dimensions. Default density is 8 lbs/ft³ if no freight class is set.

Field Mode Example

Map to a "density" attribute on your product:

Source Field: material.density
Unit: lbs per cubic foot

The system calculates: part_volume × material.density = weight

Calculation Mode Example

(width × height × depth / 1728) × material.density + 0.5

This calculates cubic feet, multiplies by density, and adds 0.5 lbs for hardware.


Quantity Configuration

Part quantity can be dynamic based on order configuration:

Static Quantity

Fixed number of parts:

Quantity: 2 (always 2 stiles per door)

Field Reference

Read from line item:

Quantity Field: shelf_count (customer specifies)

Calculated Quantity

Formula-based:

Quantity Calculation: height / 12 (one brace per foot)

Shipping Options

Package Separately

Enable when a part should never be combined with other parts:

  • Fragile glass panels that need individual boxing
  • Tabletops that exceed parcel limits
  • Items with different freight classes
  • Delicate components requiring special handling

When enabled, the packaging algorithm creates a separate consolidation group for this part type.

Stackable

Indicates whether multiple units can be stacked during shipping:

  • ON: Parts can be stacked in packages (panels, flat components)
  • OFF: Each part needs separate layer/space (fragile items)

Build Sheet Integration

Parts integrate directly with the Build Sheet Builder:

Using Parts as Row Source

  1. Open the Build Sheet Builder
  2. Select a table
  3. Set Row Source to "Parts"
  4. Each part becomes a row in your table

Available Columns

When using parts as row source:

Column TypeDescription
Part NameThe part's name
QuantityCalculated quantity (expanded)
DimensionsWidth, length, height values
MaterialInherited from product option
Row NumberSequential numbering
WeightCalculated part weight

Example Build Sheet

#PartQtyWidthLengthMaterial
1Stile22.25"36"Cherry
2Rail22.25"19.5"Cherry
3Panel119"31"Cherry Veneer

Shipping Integration

When Ships Assembled is OFF, the packaging algorithm:

  1. Extracts each part as a separate item
  2. Calculates part dimensions from your configuration
  3. Determines optimal package type per part (Box or Pallet)
  4. Groups compatible parts into packages
  5. Separates parts marked "Package Separately"
  6. Applies weight calculations for accurate shipping rates

See Shipping & Logistics for packaging algorithm details.


Real-World Examples

Example 1: Shaker Cabinet Door (Ships Assembled)

Ships Assembled: ON - Product ships as complete door

PartQtyWidthLengthShow on Cutsheet
Stile22.25"heightYes
Rail22.25"width - 4.5"Yes
Panel1width - 5"height - 5"Yes

Result:

  • Shipping uses overall door dimensions
  • Build sheet shows all component cuts for production

Example 2: Dining Table (Ships Unassembled)

Ships Assembled: OFF - Product ships as separate pieces

PartQtyDimensionsPackage SeparatelyStackable
Tabletop172" × 42" × 2"Yes (fragile)No
Leg44" × 4" × 29"NoYes
Apron23" × 60" × 4"NoYes
Hardware Kit16" × 6" × 3"YesNo

Result:

  • Tabletop ships alone (pallet)
  • Legs and aprons consolidate into boxes
  • Hardware ships separately
  • Build sheet shows all parts for production

Example 3: Custom Closet System

Ships Assembled: OFF - Variable components

PartQtyNotes
Side Panel2Static quantity
Shelfshelf_countFrom customer selection
Top1Static
Back Panel1Stackable

Result:

  • Packaging adapts to customer's shelf count
  • Build sheet expands to show all shelves

Measurements

Each part spec can specify its measurement type:

MeasurementDescriptionFormula
InchesDirect valuevalue
FeetLinear feetvalue / 12
Board FeetLumber volume(W × H × D) / 144
Square InchesAreaW × H
Square FeetArea in sq ft(W × H) / 144
Linear FeetLength in feetlength / 12
Cubic InchesVolumeW × H × D
Cubic FeetVolume in cu ft(W × H × D) / 1728

Reusable Parts Library

Create a library of parts that can be attached to multiple products:

Creating Reusable Parts

  1. Go to CatalogParts Library
  2. Click "Create Part"
  3. Define the part with specs
  4. Save to library

Attaching to Products

  1. Open product's Parts tab
  2. Click "Attach Existing Part"
  3. Select from library
  4. Part is linked to product

Benefits

  • Consistency across products
  • Single update propagates everywhere
  • Faster setup for new products

Inventory Deductions

Parts can also drive inventory calculations. When configured, the system deducts materials based on part dimensions and quantities.

Setting Up Inventory Formulas

  1. Go to Product → Inventory tab
  2. Click "Create Formula" to open the Formula Builder
  3. Build a calculation using part dimensions

Common Inventory Formulas

Material TypeFormula
Sheet GoodsSquare Feet × qty × 1.10 (with 10% waste)
LumberBoard Feet × qty
Edge BandingPerimeter × qty
Linear MaterialsLinear Feet × qty

The same Formula Builder used for parts dimensions works for inventory calculations.


Build Sheet Generation

Parts automatically generate build sheets in order PDFs:

Build Sheet Contents

  • Order Header - Customer and order details
  • Line Items Table - Dimensions and quantities
  • Parts Breakdown - Each part with calculated dimensions
  • Material Summary - Grouped by material type

Validation Rules

Build sheet generation enforces:

  • Quantities must be zero or positive
  • Dimensions must be positive (non-zero)
  • Invalid values fall back to safe defaults

Best Practices

  1. Use descriptive names - "Left Stile" vs "Part 1"
  2. Include all components - Even small hardware for accurate shipping
  3. Set accurate weights - Critical for reliable shipping quotes
  4. Mark fragile items - Use Package Separately for delicate parts
  5. Test with real orders - Verify calculations match actual products
  6. Use the library - Reusable parts save time and ensure consistency

Troubleshooting

Parts Not Appearing in Packages

  • Verify Ships Assembled is set to OFF
  • Check that part dimensions are valid (positive numbers)
  • Ensure quantity is greater than 0

Incorrect Dimensions

  • Review formula syntax
  • Verify attribute field names match exactly
  • Test with known input values

Build Sheet Missing Parts

  • Confirm Show on Cutsheet is enabled
  • Check that Row Source is set to "Parts"
  • Verify parts are defined on the product

Weight Calculation Issues

  • For Auto mode: verify freight class is set on product
  • For Field mode: check field mapping is correct
  • For Calc mode: verify formula syntax

Next Steps