Skip to main content

Product Variations

Manage variations for a product. Variations allow you to offer different options of the same product (e.g., different sizes, colors, or models).

Understanding Variationsโ€‹

Variations consist of two parts:

  1. Properties - The attributes that vary (e.g., "Size", "Color"). Managed through the EquipDash portal.
  2. Variations - The specific combinations of property values (e.g., "Large, Red"). Managed via API or portal.

Endpointsโ€‹

MethodEndpointDescription
GET/v1/products/{id}/variationsList variations
GET/v1/products/{id}/variations/{variationId}Get variation
POST/v1/products/{id}/variationsAdd variation
PATCH/v1/products/{id}/variations/{variationId}Update variation
DELETE/v1/products/{id}/variations/{variationId}Delete variation

Authenticationโ€‹

All variation endpoints require an API key with products:read scope for GET requests, and products:write scope for POST/PATCH/DELETE requests.

Variation Pricingโ€‹

A variation can carry its own price instead of the product's base price. When the product's "Different pricing by variation" switch is on (set on the product's Pricing tab in the portal), any variation with custom pricing is quoted, carted, and booked at its own price on every channel โ€” booking widget, POS, API, and mobile. Variations without custom pricing always use the product's base price.

  • Variation payloads include has_custom_pricing (boolean) โ€” true when this variation's own pricing is active.
  • Product payloads include variation_pricing_enabled (boolean).
  • To get an actual quote for a variation, call Calculate Pricing with items[].variation_id โ€” the engine resolves whether custom pricing applies.
  • Booking creation automatically charges the variation's price when products[].variation_id points at a custom-priced variation.
  • Full pricing structures per variation (schedules, seasonal pricing, pricing templates, daily rates) are managed on the product's Pricing tab in the portal.

Enabling Variationsโ€‹

Products must have variations enabled before you can add variations:

  1. Enable variations when creating the product with "variations": true
  2. Or update an existing product with "variations": true
info

Variation properties (e.g., "Size", "Color") are created and managed through the EquipDash portal. The List Variations endpoint returns the available properties along with the variations.

Workflow Exampleโ€‹

  1. Enable variations on the product via API
  2. Create properties (e.g., "Size", "Color") in the EquipDash portal
  3. Add variations via API for each combination you want to offer
  4. Add inventory for each variation via Inventory API
# Step 1: Enable variations on the product
curl -X PATCH ".../products/1" \
-d '{"variations": true}'

# Step 2: Create properties in the portal (Size: property_id=1, Color: property_id=2)

# Step 3: Add "Large, Red" variation
curl -X POST ".../products/1/variations" \
-d '{
"sku": "BIKE-L-RED",
"values": [
{"property_id": 1, "value": "Large"},
{"property_id": 2, "value": "Red"}
]
}'

# Step 4: Add inventory for this variation
curl -X POST ".../products/1/inventory" \
-d '{
"variation_id": 3,
"total_quantity": 5
}'