Get 50% off in our half price sale

No need for a code as discount is already applied

Shop Now

You are from our

Book a free design consultation and we will show you how we can make the most of your space.

Book Appointment

Welcome to the Home Decor Configurator




Configure your wardrobe

Section
Range: {{staticData.doorRangesById[inputData.doorOptions.doorRangeId].displayName}}
Doors & Frames: {{inputData.doorOptions.numberOfDoors}}
Door Panels:
#{{$index + 1}}: {{staticData.materialDisplayNamesById[staticData.doorPanelsById[panelSelection.doorPanelIdsByDoorSide['Front']].details.materialId]}}










  •  
  • {{(!$first && !$last) ? ', ' : ''}}{{($last && !$first) ? (translate('and') + ' ') : ''}} {{doorIndex + 1}}
     


  •  
  • Please specify a valid number of additonal track sets.
  • The number of soft closes is invalid.


  •  



  •  

:
{{price.combinedDoorsUndiscountedPriceIncVat | currency: staticData.displayCurrency.htmlSymbol}}

:
{{price.interiorUndiscountedPriceIncVat | currency: staticData.displayCurrency.htmlSymbol}}

:
{{-price.totalDiscountCalculation.discountAmountIncVat | currency: staticData.displayCurrency.htmlSymbol}}

:
{{price.combinedDoorsUndiscountedPriceExcVat | currency: staticData.displayCurrency.htmlSymbol}} ()

:
{{price.interiorUndiscountedPriceExcVat | currency: staticData.displayCurrency.htmlSymbol}} ()

:
{{-price.totalDiscountCalculation.discountAmountExcVat | currency: staticData.displayCurrency.htmlSymbol}} ()

mm
mm
mm
mm

None

-

{{heightReducer.height}}mm

{{(price.indicativeHeightReducerPricesByHeightIncVat[heightReducer.height] || 0) | currency: staticData.displayCurrency.htmlSymbol}}

{{(price.indicativeHeightReducerPricesByHeightExcVat[heightReducer.height] || 0) | currency: staticData.displayCurrency.htmlSymbol}} ()

{{doorRange.displayName}}
: {{doorRange.fromPriceCalculation.totalPriceIncVat | currency: staticData.displayCurrency.htmlSymbol}}
: {{doorRange.fromPriceCalculation.totalPriceExcVat | currency: staticData.displayCurrency.htmlSymbol}}
: {{doorRange.fromPriceCalculation.totalPriceIncVat | currency: staticData.displayCurrency.htmlSymbol}}
: {{doorRange.fromPriceCalculation.totalPriceExcVat | currency: staticData.displayCurrency.htmlSymbol}}
{{doorQuantity}}

{{doorWidthCalculationMode.displayName}}

Door {{$index + 1}}

mm

{{doorOverlappingMode.displayName}}

{{doorRange = staticData.doorRangesById[inputData.doorOptions.doorRangeId]; ''}} {{doorPanelConfigurationIds = inputData.validationSettings.validateDoorPanelConfigurations ? doorRange.allowedDoorPanelConfigurationIds : staticData.doorPanelConfigurationIds; ''}}
{{doorPanelConfiguration = staticData.doorPanelConfigurationsById[doorPanelConfigurationId];''}}

{{doorRange = staticData.doorRangesById[inputData.doorOptions.doorRangeId]; ''}}

{{doorHandleOrientation.mode}}

    {{doorRange = staticData.doorRangesById[inputData.doorOptions.doorRangeId]; ''}} {{materialIds = inputData.validationSettings.validateFrameMaterial ? doorRange.allowedFrameMaterialIds : staticData.metalMaterialIds; ''}}
  • {{material = staticData.materialsById[materialId]; ''}} {{staticData.materialDisplayNamesById[materialId]}}
{{doorRange = staticData.doorRangesById[inputData.doorOptions.doorRangeId]; ''}}

{{stileType.displayName}}

{{doorRange = staticData.doorRangesById[inputData.doorOptions.doorRangeId]; ''}} {{doorPanelIdsByMaterialType = inputData.validationSettings.validateDoorPanelPlacements ? calculatedData.allowedDoorPanelIdsByMaterialType : staticData.doorPanelIdsByMaterialType;''}}

  • {{doorPanel = staticData.doorPanelsById[doorPanelId];''}}
    {{staticData.materialDisplayNamesById[doorPanel.details.materialId]}}

{{linerSelectionMode.displayName}}

x {{inputData.doorLinerOptions.horizontalQuantityMultiplier}}
x {{inputData.doorLinerOptions.verticalQuantityMultiplier}}
  • {{material = staticData.materialsById[materialId]; ''}}

{{endPanelMaterialSelectionMode.displayName}}

  • {{material = staticData.materialsById[materialId]; ''}}
mm

{{trackSetTypeSelectionMode.displayName}}

{{doorRange = staticData.doorRangesById[inputData.doorOptions.doorRangeId]; ''}}

{{trackSetMountingType.displayName}}

mm
{{doorRange = staticData.doorRangesById[inputData.doorOptions.doorRangeId]; ''}}

{{price.doorsPriceIncVat | currency: staticData.displayCurrency.htmlSymbol}}

{{price.doorsPriceExcVat | currency: staticData.displayCurrency.htmlSymbol}} ()

:
{{inputData.doorOptions.numberOfDoors}} x {{staticData.doorRangesById[inputData.doorOptions.doorRangeId].displayName}}
:
{{staticData.materialDisplayNamesById[inputData.doorOptions.doorFrameMaterialId]}}
:
#{{$index + 1}}: {{staticData.materialDisplayNamesById[staticData.doorPanelsById[panelSelection.doorPanelIdsByDoorSide['Front']].details.materialId]}}
#{{$index + 1}} : {{staticData.materialDisplayNamesById[staticData.doorPanelsById[panelSelection.doorPanelIdsByDoorSide['Front']].details.materialId]}}
#{{$index + 1}} : {{staticData.materialDisplayNamesById[staticData.doorPanelsById[panelSelection.doorPanelIdsByDoorSide['Back']].details.materialId]}}
:
{{totalSingleTrackSets = (inputData.trackSetOptions.trackSetType == 'Single' ? 1 : 0) + inputData.trackSetOptions.numberOfAdditionalSingleTrackSets;''}} {{totalDoubleTrackSets = (inputData.trackSetOptions.trackSetType == 'Double' ? 1 : 0) + inputData.trackSetOptions.numberOfAdditionalDoubleTrackSets;''}} {{totalTripleTrackSets = (inputData.trackSetOptions.trackSetType == 'Triple' ? 1 : 0) + inputData.trackSetOptions.numberOfAdditionalTripleTrackSets;''}} {{totalSingleTrackSets}} x
{{totalDoubleTrackSets}} x
{{totalTripleTrackSets}} x
:
{{inputData.trackSetOptions.trackSetWidthOverride}} mm
:
{{inputData.doorOptions.desiredDoorOverlappingMode}}
{{doorRange = staticData.doorRangesById[inputData.doorOptions.doorRangeId]; ''}}
:
{{inputData.doorOptions.doorHandleOrientation}}

{{price.linersPriceIncVat | currency: staticData.displayCurrency.htmlSymbol}}

{{price.linersPriceExcVat | currency: staticData.displayCurrency.htmlSymbol}} ()

{{linerQuantities = inputData.doorLinerOptions.quantitiesByPlacementLocation; ''}} {{totalLiners = linerQuantities['Top'] + linerQuantities['Bottom'] + linerQuantities['Left'] + linerQuantities['Right']; ''}}
:
{{quantity = inputData.doorLinerOptions.quantitiesByPlacementLocation[doorLinerPlacementLocation.placementLocation];''}} {{multiplier = doorLinerPlacementLocation.orientation == 'Horizontal' ? inputData.doorLinerOptions.horizontalQuantityMultiplier : inputData.doorLinerOptions.verticalQuantityMultiplier;''}} {{doorLinerPlacementLocation.displayName}} x {{quantity * multiplier}}.
:
{{staticData.doorLinerThickness}}mm
:
{{staticData.materialDisplayNamesById[inputData.doorLinerOptions.materialId]}}

{{price.endPanelsPriceIncVat | currency: staticData.displayCurrency.htmlSymbol}}

{{price.endPanelsPriceExcVat | currency: staticData.displayCurrency.htmlSymbol}} ()

:
:
{{staticData.endPanelThickness}}mm
:
{{staticData.materialDisplayNamesById[inputData.endPanelOptions.materialId]}}

{{price.interiorPriceIncVat | currency: staticData.displayCurrency.htmlSymbol}}

{{price.interiorPriceExcVat | currency: staticData.displayCurrency.htmlSymbol}} ()

:
{{staticData.interiorsByProductId[ip.interiorProductId].name}}
:
{{staticData.materialDisplayNamesById[ip.interiorMaterialId]}}
{{doorRange = staticData.doorRangesById[inputData.doorOptions.doorRangeId]; ''}}

{{price.softClosesPriceIncVat | currency: staticData.displayCurrency.htmlSymbol}}

{{price.softClosesPriceExcVat | currency: staticData.displayCurrency.htmlSymbol}}

{{price.lightingPriceIncVat | currency: staticData.displayCurrency.htmlSymbol}}

{{price.lightingPriceExcVat | currency: staticData.displayCurrency.htmlSymbol}}

{{price.indicativeInstallationPriceIncVat | currency: staticData.displayCurrency.htmlSymbol}}

{{price.indicativeInstallationPriceExcVat | currency: staticData.displayCurrency.htmlSymbol}} ()

:
{{price.combinedDoorsPriceIncVat | currency: staticData.displayCurrency.htmlSymbol}}

:
{{price.interiorPriceIncVat | currency: staticData.displayCurrency.htmlSymbol}}

:
{{price.discountCalculation.discountAmountIncVat | currency: staticData.displayCurrency.htmlSymbol}}

:
{{price.vatAmount | currency: staticData.displayCurrency.htmlSymbol}}

:
{{price.combinedDoorsPriceExcVat | currency: staticData.displayCurrency.htmlSymbol}} ()

:
{{price.interiorPriceExcVat | currency: staticData.displayCurrency.htmlSymbol}} ()

:
{{price.discountCalculation.discountAmountExcVat | currency: staticData.displayCurrency.htmlSymbol}}

Debug Output

Input Data

{{buildInputDataDebugOutput()}}

Static Data

{{buildStaticDataDebugOutput()}}

Watches

Door Width: {{calculatedData.physicalMetrics.requiredDoorWidth}}mm
Aperture Size: {{calculatedData.physicalMetrics.apertureSize.width}}mm x {{calculatedData.physicalMetrics.apertureSize.height}}mm

{{error}}

How to Order Your Spaceslide Wardrobe

Measure, Design, Order

  1. 1

    Measure the space in your room

    Use our helpful guide to make sure your wardrobe doors fit your space perfectly.

    Guide to Measuring
  2. 2
    Design

    Design your style using our configurator

    There are no hidden costs or surprises with our tool that allows you to view the price in real-time as you build your design.

    Design Your Wardrobe
  3. 3
    Place your order

    Place your order & get it installed

    Use our online design tool to create your bespoke sliding wardrobes and order them for direct delivery. Or you can take advantage of our complete survey, design and installation service.

    Installation