Smartsite Implementation guide

Smartsite Implementation guide




SmartSite Implementation Guide

Your marketing website powered by printIQ


Contents

1

Introduction: What is SmartSite


2

Why use SmartSite


3

Getting started


4

Under the hood


5

Authentication and security


6

Styling


7

Widget samples


8

Widget configuration options


9

Technical instructions for adding the widget to your website



Introduction: What is SmartSite 

SmartSite is a printIQ connectivity module that transforms your marketing website into an online sales channel that
is powered by printIQ.  It allows you to retain or create your own marketing focused website, using your preferred
platform, and to that we add the smarts of printIQ to deliver product specifications and pricing in a fully functional e-commerce solution. 

Best of all, you’re in control of the content and the marketing strategy as it’s your own website.  SmartSite simply comes in to deliver the complicated parts of e-commerce.


Why use SmartSite

Traditionally, when implementing an e-commerce solution, you had two options; use a standalone web2print solution
that lacked the marketing focus, or you could go with a shopping cart that couldn’t handle the complexity of print products.

In creating SmartSite, we set about to bridge the gap by delivering a fully integrated solution with three fundamental concepts in mind:

  • Present a diverse range of print products and finishing options without creating a dedicated product for each option
  • Utilise the power of the printIQ pricing engine
  • Solve the integration challenge by taking your online order into your factory ready for production

SmartSite is targeted at web designers to add to any website without the need to understand the technical aspects of API integration
and many of the complexities associated with print products.


Getting started

SmartSite is easy to setup, all product offerings and pricing is configured within printIQ after which you simply point your website at the products you wish to offer.


STEP 1

Review your website and plan how you want to present the SmartSite widgets

STEP 2

Setup your Simplified Products within printIQ and decide which you want to publish on your website

STEP 3

Request IQ to issue your authentication token and whitelist your URL  

STEP 4

Add the widget code to your web pages

STEP 5

Update the widget configuration according to your preferences

Step 6

Style the widget using CSS on your website


Under the hood

The SmartSite widget is based on taking the smarts of printIQ simplified quoting and making it available on your website or within an external application.  
The widget provides the smarts for defining a product and uses the pricing engine from within printIQ.

SmartSite is a Javascript based component that works by simply copying the supplied script onto your web page.  
The plug-in has self-contained APIs that take care of the printIQ connectivity and authentication.  
From there, it pulls product data and pricing from printIQ in real time using standard printIQ web service calls.

The widget follows standard printIQ protocols so that as you use the widget, an order is created within printIQ for
each product added to the shopping cart.  Once the user is ready to checkout, they re-direct to printIQ Checkout screen.


Below is an explanation of some of the key terms used within SmartSite and how printIQ drives this function:


SmartSite concept

printIQ functionality that drives this

Shopping cart

The SmartSite module uses the standard printIQ Shopping Cart which is in essence an order / quote within printIQ.  Multiple products can be added to the cart, be it simplified products or products from the IQstore.

Items remain in the cart until checkout is complete.

Non-authenticated user access

The widget itself is driven by a user account within printIQ. The default user account is “widget”, but you can set this according to your preference.  The user account drives access to products and pricing in the same way that any user account does within printIQ. 

Authenticated user access

You have the choice of displaying a login option on your website.  Existing users can login at this point after which the pricing generated from the widget will be based on their customer account.

Non-authenticated account access

Prior to a customer logging in, a guest account is used as an order must reside on a customer account within printIQ.    The default account is “Widget” but again, it can be any customer account within printIQ.

Once the user proceeds to Checkout, we move the order from the “Widget” account to the account created during the registration process so that every online order is placed on a personal account for that customer.

printIQ Simplified Products

The main function delivered by the widget is the Simplified Product layer from within printIQ.  This is our unique, child-proof layer that sits over the quoting engine where you cannot quote something that your factory is not able to produce. A prerequisite to using SmartSite is to have your products already setup.

Within printIQ, products are configured and linked to a Product category.  Within the widget setup, you simply point the widget at a product category.  This allows you to be selective as to what you offer online.

It is important to note that the widget supports the majority of Simplified Quoting functionality, however there are some aspects that are not available. This includes concepts such as Quote Questions, Parameters, component selection, quote approval etc.  Where appropriate, these options are displayed on the Checkout page within printIQ and simply not available on the widget itself.

IQstore products

IQstore products are also available within the widget.  They present slightly differently as there are no specifications, you have thumbnails of the products to choose from and you only need to set the quantity required.

The prerequisite is that you have setup your IQstore with products and they are available for ordering within printIQ.

Pricing

Pricing is driven from printIQ and follows standard pricing principles.  Pricing is based on the customer account that drives the widget which in turn is controlled by a printIQ Pricelist.

Various options are available when it comes to pricing, it can be preset pricing or time/material based.

Web registration

Prior to checkout, the registration process takes place where the user creates a user login and customer account.  The customer account always has credit card / pre-pay terms so that an order is only confirmed once it is paid.

The layout of the registration form is controlled within printIQ and you may also have a standalone link to this function without first accessing the ordering widget.  The idea is that you can add a Register link to your site without making an order.

Checkout

Once a user has added all products to the order, they choose the checkout option which takes them through to the printIQ checkout page.  This takes place regardless of whether the customer is new or existing.

Note, Checkout is not completed on the website.




Authentication and security

First of all, there are minimal setup requirements for SmartSite, especially when it comes to authentication and security.  
That being said, the widget is secure and relies on core printIQ functionality for authentication and security.

SSL encryption

printIQ functions by default using the printIQ.com SSL certificate for encryption.  As you are transitioning from your website to printIQ, we recommend that you run your ordering pages on the website using HTTPS.  This will avoid the problem of moving from one site to another and having un-secured content warnings.

Whitelisted URL

While you may add the widget code to any site, to operate, it first needs IQ to whitelist the URLs that will access the printIQ widget.  Any URLs outside of this list will be denied access.

Secured API

All printIQ APIs are secured with a user name, password and authentication token required to be held securely on your website.

Non-authenticated users

Non-authenticated users have guest access to the widget via the “widget” user account within printIQ. No password access is available / stored on the front end.

Authenticated users

Authenticated users’ login on the website with a self-contained API call to the AuthenticateUser API within printIQ. The API returns a token that allows access for a period of time.  No password data is transferred in the request.


Styling

One of the major advantages of SmartSite is that you are in control of your marketing front-end.  
You decide where to place the widget and how it is to be laid out on the page.

Some general concepts for styling are as follows:



General placement, colours and styles

You control the website, so the functionality is only limited by your HTML/CSS skills.  While the widget has pre-set styles, you have the option to use in-line styles or CSS within your own website to control how the widget lays out. This includes whether the widget is laid out vertically or horizontally.

While you may use Javascript to control the widget, it is not supported by printIQ so take care that it does not conflict with the widget functioning correctly.  Where possible, utilise the supported configs and settings outlined below to control the widget behaviour.

Drop down labels

The labels alongside each drop down are controlled by printIQ Filters where you can update the labels and control the order that they appear in.

Drop down contents

The content and order of the drop downs are driven from printIQ operations and Simplified Quoting.  

Widget buttons

The Customise page within printIQ allows you to control the button labels, while your website CSS controls what they look like.

Widget configuration

The javascript placed on your website controls many of the options for layout and functionality.  See below.

Two common settings are:

  • Product type drop down (On/Off) which determines if you show the product selector or if you prefer to restrict the content to a single product type to match your marketing content
  • Showing the shopping cart (On/off).  The config controls the display while your CSS controls where you locate it.


Widget samples 



Horizontal and Vertical Widget styling. 




Please note single products a are not supported through the widget                                                 




Widget configuration options

Below is a list of the configuration settings that are set within the code that you copy onto your web page.  
The table outlines each setting and what it controls.


Setting

Description

Value

Shopping cart



addToCart

addToCart

addToCart

hideCartIfEmpty

The shopping cart does not show if the cart is empty

True/false

useCookies

When true, the user’s cart will persist across page refreshes

True/false

checkoutUsesSimplified

This setting controls the re-direct once they checkout.  When true, proceed to checkout screen otherwise the user will re-direct to the ordering screen for that product to finetune options

True/false

showSignIn

Controls whether the login option is displayed so that existing users may login and retrieve their pricing/options

True/false

delayAddingProductToCart

Prevents the automatic add product to cart once GetPrice is clicked.  When true, the product is added to the cart once the Add to Cart button is clicked

True/false

showAnotherProductButton

When Cart is active, this button is ‘Add to Cart’. If the cart is NOT active this button becomes ‘Another Product’

True/false




Product types



showTreeNodeSelector

Controls if the product (tree node) selector is displayed.  When true, the user can select other tree nodes, otherwise, they are fixed to the preset node

True/false

treeNodeId

The Tree Node ID is the ID number of the product category that you want to display. 

Obtain it from Admin ==> Factory Capabilities ==> Product Categories and open the relevant node

Tree Node ID or ‘null’

isParentTreeNodeSelected

Controls whether the user can navigate to a higher tree node in the hierarchy

True/false




Filter (Drop down) settings


allFiltersMandatory

Set to true if you want all drop downs completed prior to GetPrice.  

True/false

allFiltersMandatory_ErrorMessage

The message to be displayed when all filters are not completed

String

clearFilterValuesOnProductChange

Clears the filters once a product has been added to the cart

True/false

clearSubsequentFiltersOnFilterOpened

When true, subsequent filters will be cleared if you modify a drop down

True/false





Quantity selectors



showKinds

This expands the quantity selection by enabling the user to specify a number of Kinds/Versions

True/false

kindsLabel

Specify the label to appear on the Kinds/Versions drop down

string

showOtherQuantity

Controls if the quantity drop down is restricted to items in the list or if ad hoc quantities can be entered

True/false

quantitiesBasedOnTreeNode

Controls if the quantity list is sourced from the tree node / product category or if read from the product itself

True/false




Pricing



showPrice

This setting governs how the widget is to behave. If set to true, the price is presented to the online user. If set to false it prompts the user to either log on or register to printIQ

True/false

hideGetPriceButtonWhenPriced

Once priced, the setting allows the GetPrice button to be hidden to prevent the user inadvertently adding the product again

True/false

includeGst

Option to control if sales tax is included within the price presented

True/false


Technical instructions for adding the widget to your website

When setting up the IQ Connect Widget, you need to provide IQ with the name of the domain that you are using to host the widget,
so the Database records can be updated. (e.g. 
www.YourCoDomain.com)

IQ will provide the HTML code that needs to be embedded into your web pages.  Note the widget settings are case sensitive

The Widget code is made up of four parts.

<Head>

There is the <head> 

<head>

<title>Widget</title>

<link href="https://yourcompany.printiq.com/bundles/css/cartwidget" rel="stylesheet" type="text/css" />

<script src="https:// yourcompany.printiq.com/bundles/js/cartwidget"></script>

<link href="https:// yourcompany.printiq.com/bundles/css/clientwidget" rel="stylesheet" type="text/css" />

<script src="https:// yourcompany.printiq.com/bundles/js/clientwidget"></script>

<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" type="text/css" />

</head>

This should be embedded into the <head> section of your web page.

There are NO edits required for these lines.


The second part of the Widget code defines the Widgets.

The order of these 2 lines will dictate the order of the Cart and Product as they appear on the Web page.

<div id="myCartWidget" class="piq-cart-widget-container"></div>

<div id="myClientWidget" class="piq-widget-container"></div>

Again, no edits required for these lines


The third part of the Widget code is used to configure the Carts’ behaviour.

code

comments

window.CartWidget_Config = PrintIQ.CartWidget.Init({


appKey: "ABCDEFGH-1234-IJKL-5678-MNOPQRSTUVWX",

appKey from tblAPI_Application for CART widget

UserId: "ZYXWVUTS-9876-RQPO-5432-NMLKJIHGFEDC",

udUserID from tblUserDetail for WIDGET user

container: document.getElementById("myCartWidget"),


hideCartIfEmpty: false,

when true, hide the cart icon when there are no products

useCookies: true,

when true, user’s cart will be persisted across page refresh

checkoutUsesSimplified: true

when true, user will be taken to QuoteDetails page, else they’ll be taken to the


The first four rows must not be changed, or the Widget will not work.

The only settings to be changed are highlighted above.

When making changes to these settings there are a few rules you must adhere to:

  • They MUST be in lower case
  • They MUST have a comma after them
  • The LAST setting in this part does NOT have a comma after it.
  • The setting keyword MUST use a capital letter for each new ‘Word’ within it – except for the first letter.



Drop downs and pricing

The final part of the Widget code is where the main Widget behaviour is configured.

code

comments

container: document.getElementById("myClientWidget"),

where to build the widget

appKey: "A1B2C3D4-E5F6-G7H8-I9J0-K11L12M13N14",

appKey from tblAPI_Application for Client Widget

userId: "ZYXWVUTS-9876-RQPO-5432-NMLKJIHGFEDC",               

udUserID from tblUserDetail for WIDGET user

treeNodeId: null,                                            

tree node to pre-select

showTreeNodeSelector: true,

allow user to select different tree nodes (visible yes/no)

isParentTreeNodeSelected: false,


shortCodes: "",                                               

short codes which pre-select various options

showSignIn: true,                                             

Allows user to login to Widget screen to get their pricing.

showPrice: true,  

user can show price and then proceed to quote; else user will proceed to quote and see price in PIQ

includeGst: false,

include GST in the price shown to user

showKinds: false,

prompt user for number of kinds

kindsLabel: "Versions",

string, sets the label for kinds control

showOtherQuantity: true,

Allow 'Other' quantity

showAnotherProductButton: true,

Used when you are not using the Cart. Add to Cart becomes ‘Another Product’



delayAddingProductToCart: true,

Prevents the products being added to the Cart automatically

allFiltersMandatory: true,


allFiltersMandatory_ErrorMessage: 'Please fill out all selectors',


clearFilterValuesOnProductChange: false,

Whether or not to clear selected values. False allows user to order multiple 'kinds'

clearSubsequentFiltersOnFilterOpened: true,

when True it resets all the following filters on the Widget

quantitiesBasedOnTreeNode: false,   

Determines whether to use the quantity list or the quantities on the product CSV.

hideGetPriceButtonWhenPriced: false



Note: The same editing rules specified above apply to these entries.
There is nothing to edit on the 1st 3 lines above.


treeNodeId: - Options for this field are a Tree Node ID or ‘NULL’

The Tree Node ID is the ID number of the product on the Product Category. Obtain it from Admin ==> Factory Capabilities ==> Manage Product Categories and open the relevant node.

The product ID is the number to the left of the product name when the node is opened…

If set to NULL the whole tree is presented to the online user, allowing them to drill-down into the product(s) they wish to access.

When set to a product category ID number, the Widget opens up with this product selected. See related settings isParentTreeNodeSelected and showTreeNodeSelector below.

showTreeNodeSelector will show or hide the product selector. If your web site has separate pages for each product, you may wish to hide the Product Selector altogether.

This setting requires that the treeNodeId setting has a value that points to a simplified product session.

isParentTreeNodeSelected ‘false’ allows the user to navigate away from the product set on the treeNodeId setting above. ‘true’ prevents the user from going higher in the product category.

When treeNodeId is set to null, this setting should be set to false.





    • Related Articles

    • IQconnect OnlineWidget Setup

        IQCONNECT SMARTSITE MODULE   OVERVIEW IQconnect SmartSite solves the age old problem of how to take your complex print business online and offer print products with all their diversity. With SmartSite you use the right tool for the right job. This ...
    • Configuring the IQ Connect Widget Code

      When setting up the IQ Connect Widget, you need to provide IQ with the name of the domain(s) that you are using to host the widget so we can Whitelist them within the database. (eg. www.YourCoDomain.com) IQ will provide the HTML code that needs to be ...
    • Payment Express - USA Merchant Activation Guide

      Payment Express - USA Merchant Activation Guide
    • Implementation strategy-Creating stocks, Materials and Sales Items Linked

      printIQ implementation strategy Creating Paper Stocks, Materials and Sales Items linked to the same Inventory Item Creating linked Inventory Items. With creating inventory items that are linked to the same stock item you first need to divide your ...
    • printIQ Integration toolbox

      Integration Toolbox Getting started with integration and API overview Access printable attachment at the top or bottom of this article depending on your browser. Introduction  When it comes to workflow and integration, everyone’s requirements are ...