---
title: "IFinishDesignResult Interface"
canonical: https://customerscanvas.com/docs/cc6/customerscanvas.iframeapi.editor.ifinishdesignresult.htm
archived: true
applies_to:
  - product: "Customer's Canvas On-Premises"
  - product: "Design Editor"
    versions: ["6.15.0", "6.x (may differ)"]
---

**You’re viewing outdated documentation.** [View the latest Customer’s Canvas On-Premises documentation](https://customerscanvas.com/docs/on-premises/).

# IFinishDesignResult Interface

**Applies to:** Customer's Canvas On-Premises; Design Editor 6.15.0, 6.x (may differ) · **Archived documentation**
 
A structure used by [Editor.finishProductDesign](https://customerscanvas.com/docs/cc6/customerscanvas.iframeapi.editor.finishproductdesign.htm.md) to store a return value. For details, see the [Introducing the IFrame API](https://customerscanvas.com/docs/cc6/handling-product-customization.htm.md) topic.
  
 - example
     - ```
// Completing product customization.
editor.finishProductDesign()
    // If product customization is completed successfully.
    .then(function (result) {
        // Get the promise properties.
        hiResOutputUrls = result.hiResOutputUrls;
        proofImageUrls = result.proofImageUrls;
        stateId = result.stateId;
        userId = result.userId;
        returnToEditUrl = result.returnToEditUrl;
        boundsData = result.boundsData;
        userChanges = result.userChanges;
        preflightProblems = result.violationWarningData;
        console.log("User " + userId + " successfully saved state " + stateId);
    })
    // If there was an error thrown when completing product customization.
    .catch(function (error) {
        console.error("Completing product customization failed with exception: ", error);
    });
```
 
## Properties
 
### boundsData
 
boundsData: object

Width, height, left, and top coordinates of the rectangle bounding all items in a group, in points. For details, see the [Calculating Area of Design Layers](https://customerscanvas.com/docs/cc6/measuring-layers.htm.md) topic.
   
#### boundsData declaration
 
- ##### currentSurface:  object 
  
    Width, height, and upper-left corner coordinates of the bounding rectangle of all items in the current surface, in points.

    - ##### height:  number 
  
        Height of the bounding rectangle.
    - ##### left:  number 
  
        X-coordinate of the upper-left corner of bounding rectangle (relative to the print area).
    - ##### top:  number 
  
        Y-coordinate of the upper-left corner of bounding rectangle (relative to the print area).
    - ##### width:  number 
  
        Width of the bounding rectangle.
- #####  Optional surfaces:  [IRectangleF](https://customerscanvas.com/docs/cc6/customerscanvas.iframeapi.editor.irectanglef.htm.md) [] 
  
    An array of coordinates of rectangles bounding all items on all product surfaces.
 
### hiResOutputUrls
 
hiResOutputUrls: string []

An array of links to the hi-res output.
 
### proofImageUrls
 
proofImageUrls: string [] []

An array of permanent links to proof images.
 
### returnToEditUrl
 
returnToEditUrl: string

A return-to-edit URL. This property is provided for backward compatibility only; it utilizes the old API based on a query string. To learn on how to perform the same functionality using IFrame API, see [Loading Product State Into Editor](https://customerscanvas.com/docs/cc6/handling-product-customization.htm.md).
 
### stateId
 
stateId: string

A product state identifier.
 
### userChanges
 
userChanges: [IUserChanges](https://customerscanvas.com/docs/cc6/customerscanvas.iframeapi.editor.iuserchanges.htm.md)

Returns an object containing all changes made by the user when personalizing the product.
 
### userId
 
userId: string

The identifier of the user who currently works with the editor.
 
### violationWarningData
 
violationWarningData: [IViolationWarningData](https://customerscanvas.com/docs/cc6/customerscanvas.iframeapi.editor.iviolationwarningdata.htm.md) []

For items having preflight problems, it provides the item name, item type, corresponding surface name and index, and states of violation warnings. This array allows for detecting products that have violations of the image resolution, safety lines, regions, and text clipping.
