Integration's XML BOD Structure

In the Price Service integration, iQuote will use 2 main messages and 2 acknowledge message as described in the workflow overview.

ProcessRFQ – it is the message that the external system will provide the product information. iQuote will consume this message to create the estimate

AcknowledgeRFQ – iQuote will send an acknowledge message every time that a new ProcessRFQ is sent to iQuote. This message will tell the external system if the ProcessRFQ was:

Rejected - if there are any mismatch on the information. In this case, iQuote will provide a reason for the rejection so that the external system can correct the message or the content.

Accepted - the ProcessRFQ message was accepted. iQuote will provide the estimate number.

ProcessQuote – iQuote will send the ProcessQuote message when the estimate is ready to have the price published. This message will provide details about the product pricing and needs to be consumed by the external system.

AcknowledgeQuote – External system use this message to acknowledge the ProcessQuote sent by iQuote

 

Basic Structure

iQuote integrates to a third-party (external) RFQ system by using XML messages, which adhere to the ePS BOD XML messaging standard. Below is a basic representation of the information you must structure in the XML message. You can use the eFusion system to help understand the XML structure and create samples.

XML from the external system to iQuote – Product information (ProcessRFQ)

Picture 234

 

XML from iQuote back to the external system - Price per product information (ProcessQuote)

Picture 47

All measures must be in the metric system in the XML message. In case the user is using iQuote with the Imperial system, the system will convert the information on the screen.

 

Request For Quote XML Details

The ProcessRFQ message will have 3 main sections: header, product and components information and product characteristics information

Header

 

 

In the header, the external system can provide the following information

Title

This field will be used as estimate title.

This field is mandatory

In case not provided iQuote will reject the message

Customer Name

It is not mandatory to provide the customer’s name in the message; it will be used as information in the message. iQuote will use the customer’s name linked with the customer ID.

Customer ID

This ID will be used to identify the customer that the estimate needs to be linked to

The customer ID needs to be previously integrated with iQuote, as mentioned in "Setup - Customer".

If you select the Use default customer if the MIS Customer ID is not found checkbox in the Estimate Standards, the system creates the Estimate using the default Customer when it cannot find the Customer ID informed. However, if you do not select this option and you provide a Customer ID in the message that does not exist in iQuote database, the message will be rejected.

In case there is a customer default setup in the Price Service defaults, it is not mandatory to provide the customer ID in the message. However, if you do not provide the ID in the message and there is no default, the system will reject the message.

When you select the Validate the Customer ID against the Customer Group ID check box in the Estimate Standards, the system validates the MISCustomer ID from the XML using the CustomerGroupID, rather than the MISCustomerID from the Customer record.

Tip: For more information, check Setting Up Price Services defaults.

Customer Contact Name

It is not mandatory to provide the customer’s name in the message; it will be used as information in the message. iQuote will use the customer’s name linked with the customer ID.

Customer Contact ID

The system will use this ID to identify the contact that the estimate needs to be linked to.

The contact ID needs to be previously integrated with iQuote, as mentioned in "Setup - Customer Contact". If you provide a contact ID in the message and it does not exist in iQuote database, the system will reject the message.

The contact ID needs to belong to the same customer ID provided in the message. In case you provide a contact ID and it does not belong to the customer, the system will reject the message.

In case there is a customer and a contact default setup in the Price Service defaults, it is not mandatory to provide the contact ID. In case you do not provide the ID in the message and there is no default, the system will reject the message.

Tip: For more information, check Setting Up Price Services defaults.

Sales Rep

The system will use this ID to identify the salesperson that the estimate needs to be linked to.

The salesperson ID needs to be previously integrated with iQuote, as mentioned in "Setup - Salesperson". If you provide a salesperson ID in the message and it does not exist in the iQuote database, the system will reject the message.

It is not mandatory to provide the salesperson ID in the message. If it is not provided, iQuote will use the salesperson linked in the customer.

CSR

The system will use this ID to identify the CSR that the estimate needs to be linked to.

The CSR ID needs to be previously integrated with iQuote, as mentioned in "Setup - CSR". If you provide a CSR in the message and it does not exist in iQuote the database, the system will reject the message.

It is not mandatory to provide the CSR ID in the message. If it is not provided, iQuote will use the CSR linked in the customer. If there is no CSR linked in the customer, the estimate will be created anyway.

Remuneration Group

The system will use this ID to identify the Remuneration Group (margin) that the estimate needs to be linked to.

The remuneration group ID needs to be typed in iQuote, as mentioned in "Setup - Remuneration Group". If you provide a remuneration group ID in the message and it does not exist in the iQuote database, the system will reject the message.

It is not mandatory to provide the remuneration group ID in the message. It can be set as a default if it’s needed in the Price service defaults. They system will not reject the message, because there is always a default in the Estimate Standards.

Tip: For more information, check Setting Up Price Services defaults.

Payment Term

The system will use this ID to identify the payment term that the estimate needs to be linked to.

The payment term ID needs to be previously integrated with iQuote, as mentioned in "Setup - Payment Term".If you provide a payment term ID in the message and it does not exist in the iQuote database, the system will reject the message.

It is not mandatory to provide the payment term ID in the message. If it is not provided, iQuote will use the payment term linked in the customer or in the Estimate Standards.

External Ref

This field will be the number of the RFQ as a reference. The system will store this information in iQuote's Estimate identification tab on the External Reference field.

It is not mandatory to provide this information in the message, but if you provide it, it will also be sent back in the ProcessQuote as a reference to the RFQ that created that estimate.

Estimate

This field will be the number of an old estimate, which the system will copy to create the new estimate.

You just need to use this field if the product specification template is not creating the products.

In case you provide an estimate number, all products/components in the message need to match with the products/components that exist in the previous estimate.

This information is not mandatory if you provide the product specification in the products.

If you provide both the product specification and the estimate references in the message, the system will reject the message.

If there is no other specification characteristic per product in the message, the system will create the new estimate as “Repeat”. If you provide one or more specification characteristics in the message for one or mode products, the system will create the new estimate as Repeat with modifications.

Picture 239

The system could use this classification to stop the estimate workflow and to send to review prior to releasing the price.

Estimator

This field will be the estimator login recorded in iQuote user record.

Once you create the estimate, the system will link the estimator in the estimate header.

It is not mandatory to provide this information in the message.

Review

This field will indicate to iQuote if the estimate needs to be reviewed or not before the price release. If “true”, it means that the estimate needs to be reviewed; if “false” it means that the estimate does not need to be reviewed.

The system will save this information in the estimate header, in the review field, as “Need review” and will stop the estimate from sending the price back automatically to the external system.

Picture 3

The estimator will need to change this field to “Reviewed” to send the price back to the external system.

It is not mandatory to provide this information in the message. If you do not provide it, the standard will be “No review needed” and the estimate will be able to send the price back automatically if it is calculated.

 

Product and component information

In the product section it will be provided main product information and its components. It will be possible to provide the following products

Single product – single component, no versions

Single product with versions – single component, with versions

Composed product – product with many components (e.g magazine), no versions

Composed product with versions – product with many components (e.g magazine), with versions

 

Single product

iQuote presents single products as just one component. For example: folders, single labels, leaflets, etc.

Picture 213

Each product will be in a RFQLine node with all quantities, identification, and specification characteristics inside of that node.

Picture 20

For single products, you need to provide the following information in the message:

Template Indicator

False - if the product has no versioning.

True - if the product has versioning.

Description

Product description that the system will use in the estimate.

It needs to be unique per estimate.

Quantity

Product quantity.

There is no limit to quantities per product. In case of many quantities, you just need to add another quantity.

Item Template (Product Specification)

This property will tell to iQuote if it should create the new estimate based on product specification.

In case the new estimate is based on a product specification as a template, the idSetType needs to be “ItemTemplate” and the schemeAgencyID, the “External code” added in the product specification template, as described in Setting up Product Specification.

<IDSet idSetType="ItemTemplate">                                                                          

               <ID schemeAgencyID="3RDMIS">Leaflet_Template</ID>

</IDSet>

If the previous estimate number was already provided in the header, you should not provide the item template.

Each product can use a different product specification in the message.

Primary ID

This will be the component/product ID. It needs to be unique in the message.

The system will store this ID in the “code” field in the estimate product tab. This ID will be sent back in the ProcessQuote message as refence, for the cases in which the estimator changes the product name in the estimating time

Variation

This will be the component/product code reference.

It does not need to be unique in the message, since this could be used as a reference to copy the same component multiple times in case of composition (see more in Composed product). The system will also use it to identify the components that will be updated based on an estimate copy.

The system will show this code in the component/product Code field in the estimate product tab.

After these properties, you will find the description of all the specification characteristics. For more information, please check Product Characteristics, mentioned below in this page.

 

Single product with versions

iQuote estimates present single products with versions as just one main component with many versions that could change slightly from the main component.

Picture 11

Picture 1

If the product has 2 different versions, in the message it will be 3 nodes: the RFQline describing the main component and the characteristics shared between all the versions, and 2 more RFQline nodes referring to the main component with just some characteristic changes.

You need to add the product specification code just in the main component.

The main component must have the TemplateIndicator as “true” and the versions as “false”.

You must add the quantity in each version.

All versions will need to refer to the main component. Add the primary ID of the main component in the ItemTemplate in each version

In case the plate changes between the versions and the main component, it is possible to use the VersinColorChange so the system will automatically change the images as described bellow:

0/Null – No changes

1 – All images change

2 – Front black changes

3 – Back black changes

4 - Front and back black changes

This information will be marked as if the user was using the system

Picture 21

Please refer to the bellow XML

Picture 9

 

Composed products

Composed products means that the product has more then one component, such as magazines, books, kits, laminated label, etc.

Picture 22

In this case, the XML will have one RFQLine for the magazine and 2 RFQSubLine; one for the cover and another one for the text:

Picture 37

Note: You can also add the information related to the Product's Composition Detail in the BOD structure for composed products. More specifically, the values that the system should input into the Factor (FactorCompositionDetail) and Qty (QtyCompositionDetail) fields.

These fields are not mandatory. If you do not send them in the message or send them with value = 0, the system will understand that there is no information to add to the product's Composition Detail.

In the product specification that is being used as a template, make sure that the code in each component is populated. In the XML, provide the proper code in Variation in each component, otherwise the system will not know which one is the cover and which one is the text.

 

Product Specification Template

Picture 35

Picture 31

Picture 34

The same specification component code can be used more than once in the message, which means that that component will be created more than once.

Let us say that in the specification template there is one cover and one text, but the user needs to create one cover and 2 texts in the estimate. There is no need to create 2 templates, just use the same template and in the message send 3 sublines: one for the cover, 2 more for the texts referring to the same text template code.

 

Composed products with versions

Composed products with versions will use the concept of versions and sublines together. It is important to understand that if one of the child components linked with the final product has a version, this means that the final product will also have different versions.

Picture 39

Picture 41

Picture 42

Picture 44

 

Identifying components when copying a previous estimate

Like the composed products, iQuote needs to know where the information should go when copying a previous estimate with many components and many products.

So, when using the copy estimate feature make sure that you are providing component codes that exist in that old estimate in each component in the XML (do not forgot the products, since one estimate can have many products). You need to use the Variation property to refer to the previous estimate component code

 

Previous estimate

Picture 38

 

Product Characteristics

Most of the characteristics will have the same structure to be described in the XML message. The only exception will be the characteristic Color + Varnish, which will be a specific structure that will have a description in that class. For all other characteristics, the XML will be as described as the example bellow:

Picture 10

This node will be repeated as many times as you add different specification characteristic properties in the component/product.

Using a Characteristic

If you want to activate a characteristic in the estimate and copy the properties’ values from the defaults, you just need to provide the characteristic’s external reference XML code, with no properties mapped as in the example below:

Picture 13

When there are no properties specified in the message, the system will get the information from the product specification. If there is not default there, then the system will look to the defaults defined in that characteristic in the specification component record.

In case the user provided any property in the message for a characteristic, the rules bellow will be applied

 

Mandatory properties

Property cannot be blank and needs to exist in the message. In case the information provided does not math with the rules, the estimate will not be created and iQuote will acknowledge with the reason to the external system

Not mandatory properties

Not mandatory properties can be blank in the message, or the property does not need to be in the message at all

Lookup properties

Any lookup property provided in the message needs to exist in the database and be active, even when the property is not mandatory. The system will check the lookup name to do the validation. In case the information provided does not math with the rules, the estimate will not be created and iQuote will acknowledge with the reason to the external system. In this document, in the characteristic properties section, all the places where is needed to find the reference to the lookup is described.

Enumerators

In case a field is a fixed enumerator, the ID needs to be provided in the message. In this document, in the characteristic properties section, all enumerators are described and the proper ID.

Interdependence

Sometimes some properties are interdependent with other properties, e.g grammage is linked with the substrate type/line. In case a property is provided in the message, but does not belong to another interdependent property, the estimate will not be created and iQuote will acknowledge with the reason to the external system

 

Available properties per specification characteristic class

The properties for each specification characteristic are used also in other XML which don’t belong to the Price Service workflow. For this reason, there is another document that provides all information about specification characteristics that could be used in the Price Service workflow or in other workflows.

Tip:To have access to this content, please check XML Supported Product Characteristics.

 

eFusion – Help with the XML Structure

eFusion tool can help you to understand the structures, references, and properties of each part of ProcessRFQ message. Open eFusion and go to ProcessRFQ

We already add 4 product samples that will help you to understand the structure in the messages

You can add more products and components to understand better the XML

Picture 46

 

Process Quote - XML Details

The ProcessQuote is the message that iQuote will send back to the external system, with the information calculated in the estimate.

Header

Information provided in the header.

Estimate Title

Information in the estimate > Identification tab > Estimate title.

Date

Estimate creation date.

User that published the price

Information in the estimate > History tab > Change of Status tab > Status Input User.

Contact ID

Information in the estimate > Identification tab > Change of Status tab > Contact.

You can visualize the ID in: Customer record > Contact > MIS Contact ID.

Customer ID

Information in the estimate > Identification tab > Change of Status tab > Customer.

You can visualize the ID in: Customer record > Customer header > MIS Customer ID.

Estimate Number

Information in the estimate > Number in the top.

External Ref (provided by the external system)

Information in the estimate > Identification tab > External Ref.

Sales Rep ID

Information in the estimate > Identification tab > Salesperson

You can visualize the ID in: Salesperson record > MIS Salesperson ID

CSR ID

Information in the estimate > Identification tab > CSR

You can visualize the ID in: User record > MIS CSR ID

Company ID

It is not possible to see in the estimate

You can visualize the ID in: Company record > MIS Company

Currency ID

Information in the estimate > negotiation tab > Currency

You can visualize the ID in: Currency record > MIS Currency

Estimate status description

Information in the estimate > Status in the toolbar

 

ProcessQuote Header Sample

 

 

 

Product Information

This is the information provided in the quote line:

Product Code and Name

Information in the estimate > Product tab > Component and Code

Product Code

Information in the estimate > Product tab > Code

Gross Weight

Each product weight in grams

Information in the estimate > Engineering tab > go in the product before packaging process > Detail

Qty

Information in the estimate > Qty/Price tab > Qty

Delivery Date

Product delivery date

Information in the estimate > More Actions > Quantity by delivery type

Total Price ($)

Information in the estimate > Qty/Price tab > Total Price

Value Add ($)

Information in the estimate > Negotiation tab > Sales Price > $ Value add

Production Cost ($)

Information in the estimate > Qty/Price tab > Production Cost

Margin ($)

Information in the estimate > Qty/Price tab > Margin $

Unit Price ($)

Information in the estimate > Qty/Price tab > Unit Price

Price details

iQuote will export any price detail item that you configured in the estimate. For more information about how to configure price details in the estimate, please check Using Price Detail Style.

The price details will give more flexibility to share more information about the price, such as price per substrate or price per printing.

You must group the price detail items by product.

Picture 240

Information in the estimate > Proposal tab > Price detail

Picture 241

 

ProcessQuote Quote line Sample