ezp builder integration guide & api documentation

23
Ezp Builder Integration Guide & API Documentation Table of Contents Ezp Builder Integration Guide & API Documentation ......................................................................... 1 Ezp builder Overview .................................................................................................................1 Basic Requirements ...............................................................................................................1 How long does it take to integrate the builder? .........................................................................1 Getting a Deployment Key .....................................................................................................2 Ezp builder Best Practices ......................................................................................................2 Using ezp Builder ......................................................................................................................2 Basic Installation Example......................................................................................................2 API Reference and Examples ......................................................................................................4 Including ezp Builder .............................................................................................................4 CreateTemplateApp ...............................................................................................................4 SetPhoto ..............................................................................................................................9 getCurrentProduct ............................................................................................................... 11 Save ................................................................................................................................. 12 getProjectInfo..................................................................................................................... 12 load................................................................................................................................... 13 setSku ............................................................................................................................... 14 setSkin .............................................................................................................................. 14 Product List ............................................................................................................................ 15 Fulfilling Orders: Posting Order XML to EZ Prints ......................................................................... 22 Final Thoughts ........................................................................................................................ 23 Ezp builder Overview This document covers the process of installing ezp builder into your website quickly and easily. It also goes into the details of the extensive API so that you can get the most out of your integration. Please note that this document is aimed at web developers with some HTML and JavaScript knowledge. Basic Requirements Installing and using ezp builder is very simple, in many cases the builder can be installed by simply adding a few lines of JavaScript code to an HTML page. The application runs in the Adobe Flash runtime and thus will work in any web browser that supports Flash. Ezp builder currently requires Flash 9 and it will take care of detecting the flash version and suggesting an upgrade if necessary – you do not need to do any work to detect flash outside the builder. How long does it take to integrate the builder? Ezp builder is designed to be embedded into a web page on your existing site. Integration time will vary depending on how much you want to customize. The most basic integration can be complete in minutes and a complete customization typically takes less than a day. In some cases you may wish to configure your ecommerce website with new products or photo handlers that pass photos into the builder. In these cases integration may take longer. The ezprints team is always eager to help so if you run into problems please email your integration support contact.

Upload: others

Post on 03-Feb-2022

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Ezp Builder Integration Guide & API Documentation

Ezp Builder Integration Guide & API Documentation

Table of Contents

Ezp Builder Integration Guide & API Documentation.........................................................................1 Ezp builder Overview.................................................................................................................1

Basic Requirements...............................................................................................................1 How long does it take to integrate the builder? .........................................................................1 Getting a Deployment Key .....................................................................................................2 Ezp builder Best Practices ......................................................................................................2

Using ezp Builder ......................................................................................................................2 Basic Installation Example......................................................................................................2

API Reference and Examples ......................................................................................................4 Including ezp Builder .............................................................................................................4 CreateTemplateApp...............................................................................................................4 SetPhoto..............................................................................................................................9 getCurrentProduct...............................................................................................................11 Save .................................................................................................................................12 getProjectInfo.....................................................................................................................12 load...................................................................................................................................13 setSku...............................................................................................................................14 setSkin ..............................................................................................................................14

Product List ............................................................................................................................15 Fulfilling Orders: Posting Order XML to EZ Prints .........................................................................22 Final Thoughts........................................................................................................................23

Ezp builder Overview This document covers the process of installing ezp builder into your website quickly and easily. It also

goes into the details of the extensive API so that you can get the most out of your integration. Please

note that this document is aimed at web developers with some HTML and JavaScript knowledge.

Basic Requirements

Installing and using ezp builder is very simple, in many cases the builder can be installed by simply

adding a few lines of JavaScript code to an HTML page. The application runs in the Adobe Flash runtime

and thus will work in any web browser that supports Flash. Ezp builder currently requires Flash 9 and it

will take care of detecting the flash version and suggesting an upgrade if necessary – you do not need to

do any work to detect flash outside the builder.

How long does it take to integrate the builder?

Ezp builder is designed to be embedded into a web page on your existing site. Integration time will vary

depending on how much you want to customize. The most basic integration can be complete in minutes

and a complete customization typically takes less than a day. In some cases you may wish to configure

your ecommerce website with new products or photo handlers that pass photos into the builder. In these

cases integration may take longer. The ezprints team is always eager to help so if you run into problems

please email your integration support contact.

Page 2: Ezp Builder Integration Guide & API Documentation

Getting a Deployment Key

Ezp Builder requires a deployment key to run in a production environment. The deployment key allows

you to have custom settings for each website where you deploy the builder. To obtain a key simply

email your integration support contact.

Ezp builder Best Practices

Before you get started review these best practices for deploying the builder.

Use medium resolution images

Why: Speed matters – customers buy more when the process is fast and easy. On ezprints.com our

medium resolution files are about 100 Kb, these download 20 times faster than a full resolution 2

Mb photo.

How: Use images that are less than 600 pixels wide and use the printResWidth and printResHeight

parameters to tell us the resolution of the full resolution image. See page 7 of our integration guide

for more details

Use the media picker when multiple photos are available

Why: The media picker is very customizable and allows your customers to quickly find photos use

drag and drop to place them onto the product.

How: The media picker is initialized in your create call and takes simple XML. See the complete

documentation in the API Reference under the createTemplateApp function.

Use the built in upload functionality

Why: Customers often shop before they upload. Using the upload functionality in ezp builder

increases conversion by keeping customers in the ordering flow with a product they have already

chosen.

How: Just tell the builder what URL on your site to post to and what parameters to pass with the

upload. If you are using the media picker the builder will send the current collectionId as a field in

the POST. See the complete documentation in the API Reference under the createTemplateApp

function.

Make it bigger

Why: ezp builder will scale the edit area to fill up all the room that you give it. Customers like to

see the details of the product they are building and preparing to buy. A larger preview allows

customers to see more detail which increases their confidence that they will get what they want.

How: The createTemplateApp call allows you to pass in the width and height you would like the

builder to appear. Increase these until you get the look you want. See the complete documentation

in the API Reference

Use the built in “Add to Cart” button

Why: The built in “Add to Cart” button is a highly visible call to action designed to help drive

conversion. It also checks to make sure the project is complete and will provide instructions to the

user if the need to do more to complete their project.

How: Simply add “addToCartCallback“ as a parameter in you create call. We will return the

projectid, sku, and thumburl to your callback function.

Using ezp Builder

Basic Installation Example

Copy this simple 4 step example to setup ezp builder in an environment that you can play around with.

This can be done on your local computer or on a web server.

1) Create an HTML document where you can install the builder. Here is a sample:

<html xmlns="http://www.w3.org/1999/xhtml">

Page 3: Ezp Builder Integration Guide & API Documentation

<head>

<title>Your Page Title Here</title>

</head>

<body>

<h2>Simple Installation Example</h2>

<p>

Please use your browsers <b>View-Source</b>

feature to see the code.

</p>

</body>

</html>

2) Copy the following code immediately above the <body> tag.

<script type="text/javascript" src="http://apps.ezprints.com/home/demo-builder-key.ezp"> </script>

<script type="text/javascript">

// fires when the application is ready for use

var readyHandler = function()

{

}

var app = ezp.apps.createTemplateApp(

{

elementId: 'appDiv',

width: 700,

height: 500,

readyCallback: readyHandler

});

</script>

3) Copy the following code onto your web page where you would like the app to appear.

<div id="appDiv">

<a href="http://www.adobe.com/go/getflashplayer">

<img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif"

alt="Get Adobe Flash player" />

</a>

</div>

4) Setup your cross-domain policy file to allow “apps.ezprints.com” to access your media.

By default, Flash applications cannot access images and other media that is hosted on other web sites

without receiving explicit permission to those resources. This permission is given using a cross domain

policy file. To give apps.ezprints.com permission to access your media, save the following into a file

called crossdomain.xml.

<cross-domain-policy>

<allow-access-from domain="apps.ezprints.com"/>

</cross-domain-policy>

Make sure that the resulting crossdomain.xml file is available at the root of your website. For example,

if your site is site.com, the cross domain policy file should be available at site.com/crossdomain.xml.

There are more advanced aspects to the cross domain policy file. To learn more on cross domain policy

files please visit the following link.

http://livedocs.adobe.com/flex/3/html/help.html?content=security2_04.html

Page 4: Ezp Builder Integration Guide & API Documentation

At this point, you should be able to see the application running on your site! Next we will discuss how to

interact with the application using the JavaScript API.

API Reference and Examples

Ezp builder API gives you the power to interact with and customize the application to your specifications.

In this section, we will go over the details of the API with examples. Required fields are denoted with a

red asterisk (*).

Including ezp Builder

You need to include a reference to the builder scrip on every page where you want the builder to run.

This script contains the JavaScript API and flash detection code. You will need to use the deployment key

issued to you by ezprints. If you need a key simply email your ezprints integration contact.

<script type="text/javascript" src="http://apps.ezprints.com/home/[Your Deployment Key].ezp">

</script>

CreateTemplateApp

Function

ezp.apps.createTemplateApp(config: Object) – Creates an instance of the application.

Returns

An instance of the application.

Parameters

config: Object *

Contains all configuration objects for this application instance. Its properties are as follows.

elementId: String *

Defines the Id of the html element where the application should go.

sku: String *

The sku of the product to load. A complete list of available products is included at the end of

this document.

width: Mixed

Defines the width of the application in pixels. The minimum recommended width is 400 pixels.

The value default is 100% of the width of the container element with id of elementId and can be a number in pixels or string representing a percent such as "80%".

height: Mixed

Page 5: Ezp Builder Integration Guide & API Documentation

Defines the height of the application in pixels. The minimum recommended height is 400 pixels.

The value default is 100% of the height of the container element with id of elementId and can

be a number in pixels or string representing a percent such as "80%".

projectId: String

Defines the project id of a previously saved project. This will reload the specified project and

any media defined within that project.

readyCallback: Function

A JavaScript function to call when the application is fully loaded and ready for interactions.

loadCallback: Function

A JavaScript function to call when the application has finished loading a project.

saveCallback: Function

A JavaScript function to call when the application has finished saving a project. The parameters

passed to this function when it is called are the project id as a string and the thumb preview URL as a string if a thumbnail was requested.

errorCallback: Function

A JavaScript function to call when the application encounters an error. The parameter passed to this function when it is called is a string indicating the error encountered.

templateLoadCallback: Function

A JavaScript function to call when the widget loads a template. This is useful when you want to perform a certain action when a template is loaded.

addToCartCallback: Function

A JavaScript function to call when the internal application “Add to Cart” button is pressed. The

parameters passed to this function when it is called are the project id as a string, the SKU of

the product that was personalized and the thumb preview URL as a string if a thumbnail was

requested. The advantage of using this button is that it validates that the product has been correctly created before proceeding with saving the project.

scope: Object

The object that should be used as the "this" object when performing any of the callbacks. Defaults to null.

mediaPickerSources: [Object]

This takes an array of media picker source objects that define the available options in the

application’s media picker. Excluding this parameter will hide the media picker. Each source

can as the following properties.

id: String *

A unique identified for the source.

Page 6: Ezp Builder Integration Guide & API Documentation

title: String *

The name of the source as it should appear in the media picker.

iconUri: String *

A URL to an image to use as the visual icon for this source.

collectionsUri: String *

A URL to a page containing all collections defined for this source. If we used passed to this parameter http://site.com/source.xml, the data contained in such a file is as follows.

<Source Id="1" Title="Source 1" IconUri="http://www.domain.com/cover.png">

<CollectionUri Format="xml|json" Id="1234">

http://site.com/collection.xml

</CollectionUri>

<Collection Id="1234" IconUri="http://www.domain.com/cover.jpg"

Title="Album 1" Description="" Size="">

collection details (detailed below) go here ...

</Collection>

</Source >

Each collection can be provided verbosely using the Collection node or via a

CollectionUri. In the verbose method, all details of the collection must be provided. In

the CollectionUri method, only the basic details are required with the remaining data stored at the specified URI. An example CollectionUri file has the following format.

<Collection Id="1234" Title="" Description="" Size=""

IconUri ="http://www.domain.com/cover.jpg">

<AssetUri Id="" Format="xml|json">

http://site.com/asset.xml

</AssetUri>

<Asset verbose asset definition (detailed below) go here ... />

<AssetsUri Format="xml|json">

Page 7: Ezp Builder Integration Guide & API Documentation

http://site.com/assets.xml

</AssetsUri>

</Collection>

Collection XML is similarly comprised of AssetUri or verbose Asset nodes. A single asset

in its own file degrades performance so it is not recommended. However, an example

AssetUri file has the following format.

<Asset Id="" Title="" Description="" Size=""

PrintResWidth="" PrintResHeight=""

PrintResUri="http://site.com/src.jpg"

ScreenResUri="http://site.com/med.jpg"

IconUri="http://site.com/thumb.jpg" />

A more useful option is AssetsUri node which defines groups of in a file. This is useful in

situations where a collection has a prohibitively large number of assets by allowing the

media picker to load the assets in manageable chunks. An example AssetsUri file has the

following format.

<Assets>

<Asset Id="" Title="" Description="" Size=""

PrintResWidth="" PrintResHeight=""

PrintResUri="http://site.com/src.jpg"

ScreenResUri="http://site.com/med.jpg"

IconUri="http://site.com/thumb.jpg"

/>

<Asset Id="" Title="" Description="" Size=""

PrintResWidth="" PrintResHeight=""

PrintResUri="http://site.com/src.jpg"

ScreenResUri="http://site.com/med.jpg"

IconUri="http://site.com/thumb.jpg"

/>

more assets would go here ...

</Assets>

multiUploadUri: String

Page 8: Ezp Builder Integration Guide & API Documentation

If specified, this enables multi-upload within the media picker. The supplied URL must be

capable of handling form posts containing binary image data and return at a minimum, a

HTTP status code of 200 to indicate success or a code of 500 to indicate failure. Also note that that the media picker will send one request per file in the multi-image uploader screen.

singleUploadUri: String

If specified, this in conjunction with the singleMediaUploadEnabled parameter enables

single-upload within the media picker. The supplied URL must be capable of handling form

posts containing binary image data and return XML data with information about the

uploaded image. The format of the returned XML must be as follows.

<Asset Id="12345" PrintResWidth="500" PrintResHeight="333"

PrintResUri="http://site.com/12345.jpg"

ScreenResUri="http://site.com/12345_screen.jpg"

IconUri="http:// site.com/12345_icon.jpg" />

singleMediaUploadEnabled: Boolean

Enables (true) or disables (false) the “add photo” feature of the application. By default, this is

enabled and connected to our internal upload service. If one or more media picker sources are

configured to support single media upload, the active source’s singleUploadUri will be used. Setting this to false ignores any media picker source settings you may have.

comboTrayInitialAssetCollectionUri: String

By using this parameter, you are indicating that you want the new style media picker instead of

the older tabbed style. This parameter looks for a uri that contains XML formatted as an <Asset> list. You can also provide the keyword “EMPTY” to load the builder with an empty tray.

skinUri: String

This will override the default style of the application. Specifications for creating a custom skin are forthcoming.

Example

function onAppReady()

{

alert("Application is ready to be used.");

}

function onProjectLoaded()

{

alert("The project was loaded");

}

function onSave(projectId, thumbUrl)

{

Page 9: Ezp Builder Integration Guide & API Documentation

alert("The project was saved with project id " + projectId + ".");

alert("A thumbnail was saved for this project at this url: " + thumbUrl + ".");

}

function onError(err)

{

alert("An error has occurred: " + err);

}

function addToCartComplete(projectId, productSku, thumbUrl)

{

alert("The project was saved with project id " + projectId + " and the sku " + productSku);

alert("A thumbnail was saved for this project at this url: " + thumbUrl + ".");

}

function onTemplateLoaded()

{

alert("A template was loaded into the application");

}

var configObject = {

elementId: "appDiv" // a div by this name exists on the page

,width: 500

,height: 400

,readyCallback: onAppReady

,loadCallback: onProjectLoaded

,saveCallback: onSave

,errorCallback: onError

,templateLoadCallback: onTemplateLoaded

};

var myApp = ezp.apps.createTemplateApp(configObject);

Remarks

The returned object representing your instance of the application is the access point to all other

functions of the API. In the example above, a call to the setPhoto API call (defined below) would be

made by typing myApp.setPhoto(object).

Flow Diagram

SetPhoto

Function

setPhoto(photo: Object) – sets the current photo region’s photo.

Product

Builder Flash

Object

Product

Builder Web

Service

Browser

JavaScript 1. create() 2a. Load Products

2b. Load Templates

4. Load 1st Template

3. readyCallback()

5. templateLoadCallback()

Page 10: Ezp Builder Integration Guide & API Documentation

Parameters

photo: Object

Represents a photo to place in the current photo region, the details of which are described below.

screenResUri: String *

The screen resolution version of the photo. If this is the only parameter you intend to

provide, it can be provided as the single string parameter to the function. (See Example 1)

id: String

The id for this photo, can be used later for replacement of screen resolution images with print

resolution images when submitting order.

printResUri: String

The URI for the print resolution of the photo which will be used when printing.

printResWidth: Number

The width of the print resolution image. This is used to calculate resolution to display resolution

warnings. If not provided, the resolution of the image specified by printResUri will be used.

printResHeight: Number

The height of the print resolution image. This is used to calculate resolution to display resolution warnings. If not provided, the resolution of the image specified by printResUri will be used.

pageId: String

The PageId from the template of the page that the PhotoRegion that the content is for. If this is

not provided, the current PhotoRegion on the current page of the project will get the photo specified.

regionId: String

The RegionId from the template of the PhotoRegion that the photo is for. If this is not provided,

and pageId is, the first PhotoRegion on the page with the specified pageId will get the photo specified.

placementMode: “Fit” or “Crop” (case-sensitive)

The placement mode decides whether the photo should be placed into the photo region in Fit or Crop mode. Please note that 'Fit' will be ignored if the template does not allow fit.

Example 1: Simple method of passing a screenResUri only.

myApp.setPhoto("http://farm4.static.flickr.com/3378/3319846806_5dc9789940_o.jpg");

Example 2: Passing more detailed information about the media.

Page 11: Ezp Builder Integration Guide & API Documentation

var myMediaObject = {

id: “1234”

,screenResUri: "http://farm4.static.flickr.com/3378/3319846806_5dc9789940_o.jpg”

,printResWidth: 1249,

,printResHeight: 814

);

myApp.setPhoto(myMediaObject);

Remarks

A common issue experienced by first-time users of our builder is that the Flash application throws

errors when they try to use this function. Often, this is caused by an improperly configured cross

domain policy file. Please make sure your policy file is setup properly, as described in the “Getting

Started: Installing ezp builder” section of this document.

Flow Diagram

getCurrentProduct

Function

getCurrentProduct() – returns a simple object containing the current product.

Returns

A JavaScript object containing the product id, name and sku, all with type String.

Parameters

None

Example: Gets the current product in a JavaScript object and displays a message with the details.

var myProduct = myApp.getCurrentProduct();

alert("ID: " + myProduct.id + ", Name: " + myProduct.name + " Sku: " + myProduct.sku);

Remarks

Product Builder

Flash Object

(shows the

image or

throws

security error)

Browser

JavaScript setPhoto() Photo

Host

Server

Check cross-domain policy

Cross-domain policy response

If success, request image

Image data

Page 12: Ezp Builder Integration Guide & API Documentation

None

Save

Function

save() – asynchronously saves the project.

Returns

By way of an asynchronous callback, returns to the saveCallback function defined for the current

application instance, a projectId String and a thumbnailUrl String.

Parameters

None

Example: Issues a save command, and upon success uses the results.

// This must be the function passed as the “saveCallback” parameter of createTemplateApp

var onSaveComplete = function(projectId, thumbnailUrl)

{

// Displays the current current project Id in an alert

alert(“Successfully saved with project id: “ + projectId + “.”);

// Show the thumbnail (assumes you have an image element with id “thumbnail”)

document.getElementById("thumbnail").src = thumbnailUrl;

}

myApp.save();

Remarks

None

Flow Diagram

getProjectInfo

Function

getProjectInfo()

Returns

Product Builder

Flash Object

Product Builder

Web

Service

Browser

JavaScript save()

Save XML and Thumbnail Data

ProjectId (guid) saveCallback() with a project id and image url to thumb image.

Page 13: Ezp Builder Integration Guide & API Documentation

projectInfo Object with two properties: requiredPhotoRegionsCompleted and

requiredTextRegionsCompleted . Each property will be “true” if all required regions in the product

or template have been filled in. By default all photo regions are required and all text regions are

optional.

Parameters

None

Example

function getProjectInfo()

{

var projInfo = widget.getProjectInfo();

alert("required photos completed? " + projInfo.requiredPhotoRegionsCompleted);

alert("required text completed? " + projInfo.requiredTextRegionsCompleted);

}

Remarks

getProjectInfo can be used to get a javascript object with valuable statistics about the project.

More stats will be added over time, but for now, the two pieces of information available are

requiredPhotoRegionsCompleted and requiredTextRegionsCompleted which are Boolean values

indicating completion of photo and text regions respectively.

load

Function

load(projectId: String) – asynchronously loads the specified project.

Returns

None, but does call the loadCallback function defined for the current application instance so that

further action can be taken upon a successful load.

Parameters

None

Example

myApp.load('123456-7890-abcd-ef12-34567890abc');

Remarks

None

Flow Diagram

Page 14: Ezp Builder Integration Guide & API Documentation

setSku

Function

setSku(sku: String) – sets the current sku visible in the application.

Returns

Not Applicable

Parameters

sku: String

The sku to load into the application. For a full list of available products please see the “Available

Products” section of this document.

Example

// sets the current sku to a glossy 4x6 print

myApp.setSku('10040');

Remarks

Using this function effectively destroys any unsaved project data currently loaded in the application

by loading a new project using the new product sku.

setSkin

Function

setSkin(skinSwfUrl: String) – sets the current skin of the application.

Returns

Not Applicable

Parameters

skinSwfUrl: String

The URL to the compiled CSS (as a SWF). The CSS will be is applied at runtime.

Example

Product

Builder Flash

Object

Product

Builder Web

Service

Browser

JavaScript load(projectId)

get XML by project Id

XML representing the project

loadCallback()

Page 15: Ezp Builder Integration Guide & API Documentation

// sets the current skin to the style defined in newStyle.swf

myApp.setSkin('http://www.site.com/newStyle.swf');

Remarks

Specifications for creating a custom skin are forthcoming.

Product List

The following is a comprehensive list of available products. Please note that this list is updated often

with new products as they become available within ezp builder.

Product Sku Description

Apron

10180 Apron

Buttons

85110 3 Inch Button

85100 4 Inch Button

Calendars

70300 12 Month Calendar

70305 18 Month Calendar

Cards

70201 5x7 Cards

70250 3x5 Cards

30540 4x8 Cards

Coasters

10109 4 Unique 4" Coasters

10113 4 Pack 4" Coasters

Eco Stationary

74000 Notepad - Eco Friendly

74001 Refrigerator notepad - Eco Friendly

74009 Small Notebook - Eco Friendly

74003 25 4 x 5 Note Cards - Eco Friendly

74004 25 5 x 7 Folded Card - Eco Friendly

Framed Canvas

82100 11x14 Framed Canvas - Black

82101 16x20 Framed Canvas - Black

82102 12x18 Framed Canvas - Black

82103 16x16 Framed Canvas - Black

82104 36x36 Framed Canvas - Black

82105 10x25 Framed Canvas - Black

82106 16x40 Framed Canvas - Black

82107 30x30 Framed Canvas - Black

82108 20x30 Framed Canvas - Black

82109 24x24 Framed Canvas - Black

Page 16: Ezp Builder Integration Guide & API Documentation

82110 24x36 Framed Canvas - Black

82111 30x40 Framed Canvas - Black

82112 22x55 Framed Canvas - Black

82113 24x60 Framed Canvas - Black

82114 30x45 Framed Canvas - Black

82115 11x14 Framed Canvas – Chocolate

82116 16x20 Framed Canvas – Chocolate

82117 12x18 Framed Canvas – Chocolate

82118 16x16 Framed Canvas – Chocolate

82119 36x36 Framed Canvas – Chocolate

82120 10x25 Framed Canvas – Chocolate

82121 16x40 Framed Canvas – Chocolate

82122 30x30 Framed Canvas – Chocolate

82123 20x30 Framed Canvas – Chocolate

82124 24x24 Framed Canvas – Chocolate

82125 24x36 Framed Canvas – Chocolate

82126 30x40 Framed Canvas – Chocolate

82127 22x55 Framed Canvas – Chocolate

82128 24x60 Framed Canvas – Chocolate

82129 30x45 Framed Canvas – Chocolate

82130 11x14 Framed Canvas - Leming

82131 16x20 Framed Canvas - Leming

82132 12x18 Framed Canvas - Leming

82133 16x16 Framed Canvas - Leming

82134 36x36 Framed Canvas - Leming

82135 10x25 Framed Canvas - Leming

82136 16x40 Framed Canvas - Leming

82137 30x30 Framed Canvas - Leming

82138 20x30 Framed Canvas - Leming

82139 24x24 Framed Canvas - Leming

82140 24x36 Framed Canvas - Leming

82141 30x40 Framed Canvas - Leming

82142 22x55 Framed Canvas - Leming

82143 24x60 Framed Canvas - Leming

82144 30x45 Framed Canvas - Leming

Framed Poster

82200 11x14 Poster Stock Frame - Black

82201 16x20 Poster Stock Frame - Black

82202 12x18 Poster Stock Frame - Black

82203 16x16 Poster Stock Frame - Black

82204 36x36 Poster Stock Frame - Black

82205 10x25 Poster Stock Frame - Black

82206 16x40 Poster Stock Frame - Black

82207 30x30 Poster Stock Frame - Black

82208 20x30 Poster Stock Frame - Black

82209 24x24 Poster Stock Frame - Black

82210 24x36 Poster Stock Frame - Black

82211 30x40 Poster Stock Frame - Black

82212 22x55 Poster Stock Frame - Black

82213 24x60 Poster Stock Frame - Black

82214 30x45 Poster Stock Frame - Black

82215 11x14 Poster Stock Frame – Chocolate

82216 16x20 Poster Stock Frame – Chocolate

82217 12x18 Poster Stock Frame – Chocolate

82218 16x16 Poster Stock Frame – Chocolate

Page 17: Ezp Builder Integration Guide & API Documentation

82219 36x36 Poster Stock Frame – Chocolate

82220 10x25 Poster Stock Frame – Chocolate

82221 16x40 Poster Stock Frame – Chocolate

82222 30x30 Poster Stock Frame – Chocolate

82223 20x30 Poster Stock Frame – Chocolate

82224 24x24 Poster Stock Frame – Chocolate

82225 24x36 Poster Stock Frame – Chocolate

82226 30x40 Poster Stock Frame – Chocolate

82227 22x55 Poster Stock Frame – Chocolate

82228 24x60 Poster Stock Frame – Chocolate

82229 30x45 Poster Stock Frame – Chocolate

82230 11x14 Poster Stock Frame - Leming

82231 16x20 Poster Stock Frame - Leming

82232 12x18 Poster Stock Frame - Leming

82233 16x16 Poster Stock Frame - Leming

82234 36x36 Poster Stock Frame - Leming

82235 10x25 Poster Stock Frame - Leming

82236 16x40 Poster Stock Frame - Leming

82237 30x30 Poster Stock Frame - Leming

82238 20x30 Poster Stock Frame - Leming

82239 24x24 Poster Stock Frame - Leming

82240 24x36 Poster Stock Frame - Leming

82241 30x40 Poster Stock Frame - Leming

82242 22x55 Poster Stock Frame - Leming

82243 24x60 Poster Stock Frame - Leming

82244 30x45 Poster Stock Frame - Leming

Keepsake Box and Desk Organizer

10240 Keepsake Boxes

10241 Desk Organizer

Key Tags and Luggage Tags

10118 Key Tag

10117 Luggage Tag

Magnets

10195 2.5x3.5 Photo Magnet

10196 3.5x5 Photo Magnet

Mounted Prints

83030 11x14 Glossy Mounting

83033 11x14 Glossy Mounting with hanging kit

83031 11x14 Luster Mounting

83004 11x14 Luster Mounting with hanging kit

83006 12x12 Glossy Mounting

83009 12x12 Glossy Mounting with hanging kit

83007 12x12 Luster Mounting

83034 12x12 Luster Mounting with hanging kit

83008 12x12 Metallic Mounting

83011 12x12 Metallic Mounting with hanging kit

83012 16x20 Glossy Mounting

83015 16x20 Glossy Mounting with hanging Kit

83013 16x20 Luster Mounting

83016 16x20 Luster Mounting with hanging kit

83014 16x20 Metallic Mounting

83017 16x20 Metallic Mounting with hanging kit

Page 18: Ezp Builder Integration Guide & API Documentation

83018 20x20 Glossy Mounting

83021 20x20 Glossy Mounting with hanging kit

83019 20x20 Luster Mounting

83022 20x20 Luster Mounting with hanging kit

83020 20x20 Metallic Mounting

83023 20x20 Metallic Mounting with hanging kit

83024 20x30 Glossy Mounting

83027 20x30 Glossy Mounting with hanging kit

83025 20x30 Luster Mounting

83028 20x30 Luster Mounting with hanging kit

83026 20x30 Metallic Mounting

83029 20x30 Metallic Mounting with hanging kit

Mousepads

10101 Mousepad

Mugs

10102T 11oz Mug, White

10190 11oz Mug, Black

10112T 15oz Mug, White

10115 16 oz Stainless Steel Travel Mug

Ornaments

10137 Star Ornament

10138 Round Ornament

Photo Panels

10570 5x7 Photo Panel

10571 8x10 Photo Panel

10573 11x14 Photo Panel

Playing Cards

70002 Playing Cards

Post Cards

10041 4x6 Glossy Post Card

10047 4x6 Matte Post Card

Posters

71150 11x17 Post-It Poster

Premium Rolled Canvas

90102 10x10 Premium Rolled Canvas

90103 10x15 Premium Rolled Canvas

90305 10x25 Premium Rolled Canvas

90020 11x14 Premium Rolled Canvas

90023 12x12 Premium Rolled Canvas

90117 12x18 Premium Rolled Canvas

90303 16x16 Premium Rolled Canvas

90030 16x20 Premium Rolled Canvas

90122 16x24 Premium Rolled Canvas

90306 16x40 Premium Rolled Canvas

90129 20x20 Premium Rolled Canvas

90050 20x30 Premium Rolled Canvas

Page 19: Ezp Builder Integration Guide & API Documentation

90312 22x55 Premium Rolled Canvas

90045 24x24 Premium Rolled Canvas

90070 24x36 Premium Rolled Canvas

90313 24x60 Premium Rolled Canvas

90307 30x30 Premium Rolled Canvas

90080 30x40 Premium Rolled Canvas

90314 30x45 Premium Rolled Canvas

90085 36x36 Premium Rolled Canvas

90010 8x10 Premium Rolled Canvas

90101 8x12 Premium Rolled Canvas

Premium Rolled Poster

90405 10x25 Premium Rolled Poster

90400 11x14 Premium Rolled Poster

90402 12x18 Premium Rolled Poster

90403 16x16 Premium Rolled Poster

90401 16x20 Premium Rolled Poster

90406 16x40 Premium Rolled Poster

90408 20x30 Premium Rolled Poster

90412 22x55 Premium Rolled Poster

90409 24x24 Premium Rolled Poster

90410 24x36 Premium Rolled Poster

90413 24x60 Premium Rolled Poster

90407 30x30 Premium Rolled Poster

90411 30x40 Premium Rolled Poster

90414 30x45 Premium Rolled Poster

90404 36x36 Premium Rolled Poster

Prints

11500 Wallet Prints (4) – Glossy

11510 Wallet Prints (4) – Lustre

11505 Wallet Prints (4) – Matte

10020 3.5x5 Print – Glossy

10023 3.5x5 Print – Lustre

10021 3.5x5 Print – Matte

11000 4D Print – Glossy

11002 4D Print – Lustre

11001 4D Print – Matte

10030 4x5 Print – Glossy

10032 4x5 Print – Lustre

10031 4x5 Print – Matte

10040 4x6 Print – Glossy

10048 4x6 Print – Lustre

10043 4x6 Print – Matte

100404 4x6 Print – Metallic

10027 4x8 Print – Lustre

10026 4x8 Print – Matte

10025 4x8 Print Glossy

11010 5D Print – Glossy

11012 5D Print – Lustre

11011 5D Print – Matte

10035 5x5 Print – Glossy

10037 5x5 Print – Lustre

10036 5x5 Print – Matte

10050 5x7 Print – Glossy

10061 5x7 Print – Lustre

Page 20: Ezp Builder Integration Guide & API Documentation

10053 5x7 Print – Matte

100504 5x7 Print – Metallic

10074 8.5x11 Print – Glossy

10076 8.5x11 Print – Lustre

10075 8.5x11 Print – Matte

11020 8D Print – Glossy

11022 8D Print – Lustre

11021 8D Print – Matte

10080 8x10 Print – Glossy

10090 8x10 Print – Lustre

10083 8x10 Print – Matte

100804 8x10 Print – Metallic

10087 8x12 Print – Glossy

10089 8x12 Print – Lustre

10088 8x12 Print – Matte

100874 8x12 Print – Metallic

10070 8x8 Print – Glossy

10073 8x8 Print – Lustre

10072 8x8 Print – Matte

10096 9x12 Print – Glossy

10098 9x12 Print – Lustre

10097 9x12 Print – Matte

10077 10x10 Print – Glossy

10079 10x10 Print – Lustre

10078 10x10 Print – Matte

50037 10x12 Print – Glossy

50039 10x12 Print – Lustre

50038 10x12 Print – Matte

50040 10x15 Print – Glossy

50042 10x15 Print – Lustre

50041 10x15 Print – Matte

10093 11x14 Print – Matte

10091 11x14 Print – Glossy

10094 11x14 Print – Lustre

100914 11x14 Print – Metallic

11700 12x12 Print – Glossy

11710 12x12 Print – Lustre

11705 12x12 Print – Matte

50050 12x18 Print – Glossy

50052 12x18 Print – Lustre

50051 12x18 Print – Matte

500504 12x18 Print – Metallic

50100 16x20 Print – Glossy

50102 16x20 Print – Lustre

50101 16x20 Print – Matte

501004 16x20 Print – Metallic

50140 16x24 Print – Glossy

50142 16x24 Print – Lustre

50141 16x24 Print – Matte

50200 18x24 Print – Glossy

50202 18x24 Print – Lustre

50201 18x24 Print – Matte

502004 18x24 Print – Metallic

50380 20x20 Print – Glossy

50382 20x20 Print – Lustre

50381 20x20 Print – Matte

Page 21: Ezp Builder Integration Guide & API Documentation

50340 20x24 Print – Glossy

50342 20x24 Print – Lustre

50341 20x24 Print – Matte

50300 20x30 Print – Glossy

50302 20x30 Print – Lustre

50301 20x30 Print – Matte

503004 20x30 Print – Metallic

50520 24x36 Print – Glossy

50525 24x36 Print – Matte

505204 24x36 Print – Metallic

50540 30x40 Print – Glossy

50545 30x40 Print – Matte

505404 30x40 Print – Metallic

Puzzles

10127 Puzzle

Stickers + Address Labels

73005 Rectangle Sticker

73000 Square Sticker

73015 28 Pack Address Labels

Tiles

10121 6" Ceramic Tile

10120 Ceramic Tile Mural (Six 4 inch Tiles)

Tote Bags

10185 Tote Bag

T-Shirts

10200 Youth Small T-Shirt

10205 Youth Medium T-Shirt

10210 Youth Large T-Shirt

10215 Youth XL T-Shirt

10103 Adult Small T-Shirt

10104 Adult Medium T-Shirt

10105 Adult Large T-Shirt

10106 Adult XL T-Shirt

10107 Adult XXL T-Shirt

10225 Adult Small XLI T-Shirt

10226 Adult Medium XLI T-Shirt

10227 Adult Large XLI T-Shirt

10228 Adult XL XLI T-Shirt

10229 Adult XXL XLI T-Shirt

Wrapped Canvas

90100 8x10 Premium Canvas - Gallery Wrapped

90011 8x12 Premium Canvas - Gallery Wrapped

90012 10x10 Premium Canvas - Gallery Wrapped

90013 10x15 Premium Canvas - Gallery Wrapped

90110 11x14 Premium Canvas - Gallery Wrapped

90026 12x18 Premium Canvas - Gallery Wrapped

90215 12x12 Premium Canvas - Gallery Wrapped

90120 16x20 Premium Canvas - Gallery Wrapped

90031 16x24 Premium Canvas - Gallery Wrapped

90039 20x20 Premium Canvas - Gallery Wrapped

Page 22: Ezp Builder Integration Guide & API Documentation

90140 20x30 Premium Canvas - Gallery Wrapped

90160 24x36 Premium Canvas - Gallery Wrapped

90170 30x40 Premium Canvas - Gallery Wrapped

90275 36x36 Premium Canvas - Gallery Wrapped

Fulfilling Orders: Posting Order XML to EZ Prints

As an existing partner, you have already worked through the process of placing orders with EZ Prints.

This document is meant to augment your knowledge with ezp builder specific changes you need to make

to use this new technology. If at any time you need a refresher in the order XML process, you can visit

our XML Order Specifications page. Also please note that this document makes certain changes to the

existing process. Wherever a conflict exists between the old and new ways of doing things, the new

method takes precedence.

Updating Your Order XML

This method does not require you to specify a productid or imageid for each orderline. The ProjectId

attribute takes care of all those details for you! The ProjectId is the return value of the save() API call

you will need to store in your systems, and pass back to us when posting your order XML.

<orders partnerid="x" version="1">

<ordersession>

...

<order>

...

<orderline ProjectId="aaaa-1245-cccc-a0aa-b6gsj-11111">

<quantity>1</quantity>

</orderline>

...

</order>

...

</ordersession>

</orders>

Automatic Content Replacement

For security and performance reasons, it often makes sense not to give the application your print quality

resolution image client side. In such cases you will need a method to swap out the screen resolution

image with a larger, print ready version at order time. All you have to do is add the

ReplacementContent element on the <orderline> node as shown below.

...

<orderline ProjectId="aaaa-1245-cccc-a0aa-b6gsj-11111">

<ReplacementContent>

<!-- Method 1: Replace using a URI -->

<Replacement

Uri="http://www.my-domain.com/12345_for_screen.jpg"

ReplacementUri="http://www.my-domain.com/12345_for_print.jpg" />

<!-- Method 2: Replace using an ID (passed using the “setPhoto” call -->

<Replacement

Id="23456"

Page 23: Ezp Builder Integration Guide & API Documentation

ReplacementUri="http://www.mydomain.com/12345_for_print.jpg "/>

</ReplacementContent>

<quantity>1</quantity>

</orderline>

...

To determine what images are in use in a project, a web service is available that can be called with the

ProjectId that will return all of the user’s media content. The web service is available at

http://apps.ezprints.com/service/1.4/Project.asmx. The data can alternately be retrieved at

http://apps.ezprints.com/service/1.4/Project.asmx/GetContentForProject?ProjectId=ABCD where

“ABCD” is the project id of the project for which data is being requested.

Back Printing

Our regular prints allow an image title to be printed on the back. Our systems support a maximum of 40

characters. We support all alpha-numeric characters, parenthesis, dashes, and underscores. All other

characters will be changed to underscores.

If a back-print is desired, when using ezp builder (or any project or template based product that does

not include an imageid attribute on the orderline element), the back-print information, if desired, should

be provided in an attribute called “backprint” on the <orderline> element.

...

<orderline ProjectId="aaa-145-ccc-a0a" backprint="appears on the back of the print”>

<quantity>1</quantity>

</orderline>

...

Final Thoughts At this point, you should have everything you need to enable your customers to build more satisfying

creations on your web site. Our builders are constantly improving with more products and more

features so be sure to stay abreast of all the latest developments.